argument
說明:
在JavaScript中,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){
alert(x+","+y);
for(var i=0;i<=arguments.length;i+=){
alert(" "+arguments[i]);
}
}//output: 1,2
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);
}