遞歸
遞歸函數(shù)是在一個(gè)函數(shù)通過名字調(diào)用自身的情況下構(gòu)成的熬丧。
function factorial(num) {
if(num<=1){
return 1;
}else{
return num*factorial(num-1);
}
}
var anotherFactorial = factorial;
factorial = null;
alert(anotherFactorial(4));//error
使用arguments.callee是一個(gè)執(zhí)行正在執(zhí)行的函數(shù)的指針臊泌。
function factorial(num) {
if(num<=1){
return 1;
}else{
return num*arguments.callee(num-1);
}
}
嚴(yán)格模式下妻怎,arguments.callee會(huì)發(fā)生錯(cuò)誤箫锤,用命名函數(shù)表達(dá)式可達(dá)成相同結(jié)果。
var factorial = (function f(num) {
if (num<=1) {
return 1;
}else{
return num*f(num-1)
}
});