1.递归函数:编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。一个典型阶乘递归函数:
function fact(num){
if (num<=1){
return 1;
}else{
return num*fact(num-1);
}
}
该函数的弊端:
var another=factorical;
factorical=null;
console.log(another(2))//会报错说 factorical not a function
解决方法
: 用arguments.callee去代替函数名,就可以确保函数不管怎么调用都不会出错。
function factorical(num){
if(num<=1){
return 1;
}
else{
return num*arguments.callee(num-1);
}
}
var another=factorical;
factorical=null;
console.log(another(2))//2