arguments

目录导航

arguments

说明

在JavaScript中,arguments是对象的一个特殊属性。arguments对象就像数组,但是它却不是数组。

argument 对象包含了函数调用的参数数组,通过这种方式你可以很方便的找到最后一个参数的值。[1]

1:arguments是收到的实参副本
在词法分析中, 首先按形参形成AO的属性,值为undefined
当实参传来时, 再修改AO的相应属性.
2:并把所有收到实参收集起来,放到一个arguments对象里
t(a,b,c){},
调用时: t(1,2,3,4,5) 5个参数
此时 , AO属性只有a,b,c,3个属性, arguments里有1,2,3,4,5, 所有的值

属性

length, 获取arguments对象的长度。

callee, 引用当前正在执行的函数。

举例

参数的长度

window.onload = function(){

abc(1,2,3);

}

function abc(){

//虽然这里没有引用参数,但是arguments仍能捕获到

alert(arguments.length);

}//output 3

隐藏的参数

function abc(x,y){

alert(x+","+y);//output:1,2

for(var i=0;i<arguments.length;i++){

alert(" "+arguments[i]);//output:1 2 3

}

}

改变参数值

function abc(x,y,z){

arguments[2] = "hello";

for(var i=0;i<arguments.length;i++){

alert(" "+arguments[i]);

}

}//output: 1 2 hello

递归

求1到n的自然数之和

function add(n){

if(n == 1) return 1;

else return n + arguments.callee(n-1);

}

其实callee对于没有命名的函数调用自身时就是一个福音了,比如对于没有命名的函数求1到n自然数之和

var result = function(x){

if(x == 1) return 1;

return x+arguments.callee(x-1);

}

相关百科
返回顶部
产品求购 求购