美文网首页前端基础知识记录
js中的arguments及其callee属性

js中的arguments及其callee属性

作者: 大写的Q | 来源:发表于2017-07-14 14:25 被阅读4次

arguments

在js的函数内,可以通过arguments来访问参数数组,第一个元素为arguments[0],第二个元素为arguments[1],以此类推。。
arguments是一个类数组对象,可以使用length属性来传递进来多少个参数。 即 arguments.length
arguments的值永远与对应命名参数的值保持同步。例如:

function add() {
    arguments[1]  = 10;
    console.log(arguments.length);
    console.log(arguments[0]+arguments[1]);
};
add(1,2); //结果为11,因为arguments[1]的值被修改为10。arguments长度为2
add(1); //结果为11,arguments.length等于1
add(); //结果为NaN, arguments的length为0
callee属性

arguments有一个callee属性,是一个指针,指向拥有这个arguments对象的函数。 在递归算法的函数里非常适用,例如:

function add(num) {
    if(num<=1) return 1;
    return num+arguments.callee(num-1);
    //return num+add(num-1); //这样写会增加函数的耦合性
};

add(10); //55

又学到一点~

以上。

参考:《Javascript高级程序设计》(第3版)

相关文章

  • js中的arguments及其callee属性

    arguments 在js的函数内,可以通过arguments来访问参数数组,第一个元素为arguments[0]...

  • callee 和 caller的区别

    callee callee 是arguments的一个属性(arguments的另一个属性是length),返回函...

  • JS中的隐含参数

    JS中的隐含参数 介绍JS的隐含参数callee、callee、arguments的含义,并通过实验证明。 cal...

  • arguments.callee

    arguments.callee 属性包含当前正在执行的函数。 arguments.callee 从ES5严格模式...

  • 常用但易忘的一些知识点

    递归调用arguments.callee(); caller和callee:arguments.callee返回当...

  • js中arguments,callee,callee.calle

    面试中经常会问到这几者区别,在此记录一下:1.arguments是一个对象,是函数的一个特性,只有在函数内才具有这...

  • arguments.callee用法  

    arguments.callee用法 arguments.callee 在哪一个函数中运行,它就代表哪个函数。 一...

  • callee和caller

    callee和caller这两个属性在命名上非常相似,总是后搞混,现在梳理一下。callee是arguments的...

  • callee和caller

    callee 属于arguments的一个属性,是一个指针,指向拥有arguments对象的函数,在函数内部,ar...

  • js--caller和callee

    callee是arguments对象的属性,指向当前环境的function caller是函数的属性,保存着调用当...

网友评论

    本文标题:js中的arguments及其callee属性

    本文链接:https://www.haomeiwen.com/subject/xbonhxtx.html