1. 程式人生 > >Js arguments.callee();函數自己調用自己

Js arguments.callee();函數自己調用自己

post OS 調用 跟著 lee color call 一起 col

1.階乘的時候,函數一般要用到遞歸算法,所以函數內部一定會調用自身

//遞歸,階乘
function sum(num){
    if (num<=1) {
        return 1;
    } else{
        return num*sum(num-1);   //自己調用自己,遞歸
    }
}
alert(sum(4));

2.如果函數名一旦發生改名,所需要跟著一起修改不僅僅是在調用的時候,在內部遞歸的時候也會跟著一起修改,如果在函數內部有很多此遞歸,這時修改起來就很麻煩,如果有一個地方沒修改,其結果都會出錯,這時候就用到arguments.calle(),遞歸,自己調用自己

function box(num){
    if (num<=1) {
        return 1;
    }else{
        return num*arguments.callee(num-1);
    }
}
alert(box(4));  //其結果和上面的一樣

Js arguments.callee();函數自己調用自己