递归
递归函数是在一个函数通过名字调用自身的情况下构成的。
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)
}
});