js中的潜伏者之Arguments对象
argument
说明:
在JavaScript中,arguments是对象的一个特殊属性。arguments对象就像数组,但是它却不是数组。可以理解为他是潜伏者,通俗的说,就是你传的参数不一定按照参数列表的方式来,多的就进arguments里。
属性:
length, 获取arguments对象的长度。
callee, 引用当前正在执行的函数。
编辑本段举例:
1.参数的长度
window.onload = function(){
abc(1,2,3);
}
function abc(){
//虽然这里没有引用参数,但是arguments仍能捕获到
alert(arguments.length);
}//output 3
2.隐藏的参数
function abc(x,y){
for(var i=0;i<=arguments.length;i+=){
alert(arguments[i]);
}
}//output: 1,2,3
3.改变参数值
function abc(x,y,z){
arguments[2] = "hello";
for(var i=0;i<=arguments.length;i+=){
alert(" "+arguments[i]);
}
}//output: 1 2 hello
4.递归
求1到n的自然数之和
function add(x){
if(x == 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);
}