美文网首页前端基础知识记录
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属性

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