JS Arguments对象暂存函数参数与属性

文章作者:中山市飞娥软件工作室「Feiesoft.com」  浏览次数:3069 次  更新日期:2013-10-30

<pre><script type="text/javascript">
//JS Arguments对象暂存函数参数与属性
//在JavaScript中,当一个函数被调用时,JS会为这个函数建立一个Arguments对象,局部变量arguments自动初始化以便引用这个对象。
//JS Arguments对象最主要的功能是:提供一种方法,用来确定传递给函数的参数个数并且引用未命名的参数。
//JS Arguments对象只在函数体中定义,JS Arguments对象被定义成数组的形式,可用arguments[i]引用函数的参数,arguments[0]是函数第1实参,arguments.length = 参数个数,但JS Arguments对象不是数组。
//JS Arguments对象属性:
//(1)arguments.callee = 正在执行的函数的引用
//(2)arguments.length = 参数个数
//应用实例:

 var fac = function(x){
  //
  //arguments.length = 函数调用时,参数个数。(实参)
  //arguments.callee.length = 函数定义时,参数个数。(形参)
  //
  if(arguments.length == arguments.callee.length){
   var x = parseInt(arguments[0]);
   if(x < 2){
    return 1;
   }else{
    return x * arguments.callee(x-1);
   }
  }else{
   return 0;
  }
 }

 document.writeln("fac(1) = " + fac(1));// fac(1) = 1
 document.writeln("fac(2) = " + fac(2));// fac(2) = 2
 document.writeln("fac(3) = " + fac("3"));// fac(3) = 6
 document.writeln("fac(10,11) = " + fac(10,11));// fac(10,11) = 0
 document.writeln("fac(20) = " + fac("20"));// fac(20) = 2432902008176640000
 
</script>