您的位置:首页 > Web前端 > JavaScript

javascript Arguments对象之length、callee属性

2014-07-21 14:13 435 查看
1、length属性,我们可以利用Arguments对象的length属性来获取实际传递进的参数有几个。

function a(x, y, z) {

//arguments.callee指向函数a(),arguments.callee.length==a.length;

alert(arguments.callee.length);

//输出5

alert(arguments.length);

if (arguments.callee.length != arguments.length) {

//判断形参与实参个数是否相等,不相等则不执行

return false;

}

alert("执行");

};

a(1,2,3,4,5);

2、callee属性,Arguments对象的callee属性,指向当前调用的函数,可以利用它来进行函数自身的重载。在闭包中应用的也比较广泛。

var i = 0;

function b(num) {

if (num < 10) {

num++;

i++;

//如果有参数,callee也要把参数带上;

arguments.callee(num);

} else {

//输出2次

alert("调用了"+i+"次callee!");

}

}

b(8);

Arguments.callee在闭包中的应用,它提供了一种递归调调用的功能。

//用arguments.callee计算10的阶乘,例如: 1×2×3×4×5×6×7....

function c(x) {

return x > 1 ? x * arguments.callee(x - 1) : 1

} (10);

//输出6

alert(c(3));

//输出3628800

alert(c(10));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: