书上用了一个阶乘功能来演示递归:
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来代替原函数名更稳定。
在严格模式下使用arguments.callee会出错,可以使用下面的函数表达式:
var anotherfactorial = (function f(number) {
if (number <= 1){
return 1;
} else {
return number * f(number - 1);
}
});