js函数内的arguments对象

arguments里面的数组

js函数通过arguments对象里面的数组传参数,函数没有明确多少个参数

获取arguments里面的参数数组的方法:

function test(){
    var argu = Array.prototype.slice.call(arguments);   
}

 

arguments里面的callee属性

指向执行函数本身。

函数有个caller属性,指向调用函数

function a(){
    console.log(arguments.callee.caller.arguments[1]);
}
function b(){
    a();
}
b(1,2,3,4);
function factorial(num){
    if(num <= 1){
        return 1;
    } else{
        return num * factorial(num - 1);
    }      
}

//递归函数解耦合
function factorial(num){
    if(num <= 1){
        return 1;
    } else{
        return num * arguments.callee(num - 1);
    }      
}

 不过此方法在ES5的strict mode中被废弃了

posted @ 2016-05-18 14:00  hpyou  阅读(257)  评论(0编辑  收藏  举报