可变长度的参数列表:Arguments对象

在一个函数体内,标识符argumens具有特殊意义。它是引用arguments对象的一个特殊属性。Arguments对象是一个类似数组的对象,可以按照数目获取传递给函数的参数值。Argument对象也定义了callee属性。

 

 

 arguments对象还为JavaScript函数开发了一个项重要的可能性,即可以编写函数使之能够使用任意数目的实际参数。  下面是一个判断任意个参数中的最大值的例子:

 

 

function max( /*...*/){
   var m=Number.NEGATIVE_INFINITY;
   for(var i=0;i<arguments.length;i++){
         if(arguments[i]>m)
         {
             m=arguments[i];
         }
   }
   return m;
}

 

像这样能够接受任意数目的参数的函数叫做可变参数函数。

 

记住:arguments并非真正的数组,他是一个Arguments对象。

 

属性callee

除了数组元素,Arguments对象还顶一个callee属性,用来引用当前正在执行的函数。这个属性没有太大的用处,但它可以用来允许对未命名的函数递归地调用自身。下面是一个为名的函数直接量,用于计算阶乘:

funciton (x)
{
  if(x<=1) return 1;
  return x* arguments.callee(x-1);
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值