Arguments對象
1、在JavaScript中,argument對象是一個比較特別的對象,實際上是當前函數的一個內置屬性。arguments非常類似Array。但實際上不是一個Array實例。
2、arguments對象的長度由實參個數而不是形參個數決定
。形參是函數內部重新開辟內存空間存儲的變量,但是與其arguments對象內存空間并不重疊。對于arguments和值都存在的情況下,兩者是同步的,但是對其中一個無值的情況下,對于此無值的情形值不會得以同步。
function f(a, b, c){
alert(arguments.length); // result: "2" a = 100;
alert(arguments[0]);
// result: "100" arguments[0] = "qqyumidi";
alert(a); // result: "qqyumidi"
alert(c); // result: "undefined" c = 2012;
alert(arguments[2]); // result: "undefined"}f(1, 2);
3、JavaScript中函數不能重載
(1)JavaScript函數的聲明沒有返回類型的概念
(2)JavaScript中形成的個數嚴格意義講只為了方便在函數的變量操作,實際上實參依據存儲在arguments對象中了
4、arguments對象中callee,arguments.callee返回此arguments對象所在函數引用。在使用函數遞歸調用時推薦使用arguments.callee代替函數名本身.
callee是argument的一個指針,指向擁有argument對象的函數。
function cont(a){
if(a==1){
return 1;
}
return a+arguments.callee(--a); //用arguments.callee來代替cout()函數。
}
var mm=count(10);
alert(mm);