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版)
网友评论