書上用了一個階乘功能來演示遞歸:
7.1 遞歸(階乘)
function factorial(number){
if (number <= 1){
return 1;
}else {
return number * arguments.callee(number - 1);
}
}
var anotherfactorial = factorial;
factorial = null;
alert(anotherfactorial(4));
注:在遞歸時,使用arguments.callee來代替原函數(shù)名更穩(wěn)定。
在嚴(yán)格模式下使用arguments.callee會出錯,可以使用下面的函數(shù)表達(dá)式:
var anotherfactorial = (function f(number) {
if (number <= 1){
return 1;
} else {
return number * f(number - 1);
}
});