JavaScript arguments

来源:互联网 发布:这样开淘宝网店 编辑:程序博客网 时间:2024/05/16 00:27

js进行函数调用时,除了指定的参数外,还创建一个隐含的对象——arguments。

一、arguments可以用arguments[index]这样的语法取值,拥有长度属性length。arguments对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表,例如:


 

<script>  function func(a,b){  alert(a);  alert(b);  for(var i=0;i<arguments.length;i++){     alert(arguments[i]);  }  } func(1,2,3,4);</script>

代码运行时会依次显示:1,2,1,2,3,4。函数定义了两个参数,但是在调用的时候传递了4个参数。

 

二、arguments的callee属性

它表示对函数对象本身的引用,这有利于实现无名函数的递归或者保证函数的封装性。例如:用递归来计算1到n的自然数之和:

<script>   var sum=function(n){    if(1==n) {      return 1;    } else {      return n + arguments.callee(n-1);    }  }  alert(sum(100));</script>