javascript函數內部有兩個重要的屬性分別是arguments,this兩個對象
內部屬性是指只能在函數內部才能訪問的屬性。
arguments:
該對象主要用於保存所傳入函數的參數,同時argumenst對象又有一個指向該函數的指針屬性callee。
this:
調用該函數的外部對象指針。
var fn=function(n1,n2){};
fn(1,2);//此時this指向的是外部環境,次處window對象.
var fn=function(n1,n2){
console.log(arguments);
console.log(this==window);
console.log(arguments.callee===this.fn);
return 1;
};
fn(1,2);
//輸出
//{ '0': 1, '1': 2 }
//true
//true
由此可以利用callee實現函數的遞歸調用
function fn(num){
if(num<=1){
return 1;
}
else
{
return num*argumenst.callee(num-1);
}
}