遞歸
遞歸函數是在一個函數通過名字調用自身的情況下構成的。
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是一個執行正在執行的函數的指針。
function factorial(num) {
if(num<=1){
return 1;
}else{
return num*arguments.callee(num-1);
}
}
嚴格模式下,arguments.callee會發生錯誤,用命名函數表達式可達成相同結果。
var factorial = (function f(num) {
if (num<=1) {
return 1;
}else{
return num*f(num-1)
}
});