javascript的arguments对象

javascript的arguments对象:
当函数进行调用的时候会创建一个隐藏的对象arguments,此对象中存储实际传入函数的参数。此对象不能够显示的创建,此对象和数组非常的想象,比如可以使用索引访问对象中的单个参数,或者使用length属性值返回传入的参数的数量。
看一段代码实例:

function a(x,y){
  for(var i=0;i<arguments.length;i++){
    console.log(arguments[i]);
  }
}
a(1,2,3,4)

 以上代码可以依次弹出1,2,3,4四个参数,说明在arguments存放的是在调用函数时候实际传给函数的参数,而非仅仅是函数定义时的参数列表中的参数。使用arguments对象可以模拟实现函数的重载,例如可以根据传入参数的个数执行不同的代码。

arguments对象的callee属性:
此属性是对函数对象本身的引用,利用它可以实现以匿名方式递归函数,例如:

var sum=function(n){
  if(1==n){
    return 1;
  } 
  else{
    return n + arguments.callee(n-1);
  }
}
console.log(sum(100));

 以上代码实现了以匿名的方式递归调用sum函数。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=6301

更多内容可以参阅:http://www.softwhy.com/javascript/

猜你喜欢

转载自softwhy.iteye.com/blog/2263918