js递归函数实例之典型阶乘递归函数

发布时间:2020-10-31编辑:脚本学堂
分享一个js递归函数的例子,用于实现典型阶乘递归函数,需要的朋友参考下。

所谓递归函数,js递归函数调用自身时的保险方式。

例子,一个典型阶乘递归函数:
 

复制代码 代码示例:
function fact(num){
if (num<=1){
return 1;
}else{
return num*fact(num-1);
}
}

以下代码可导致出错:
 

复制代码 代码示例:
var anotherFact = fact;
fact = null;
alert(antherFact(4)); //出错

由于fact已经不是函数了,所以出错。www.jb200.com
用arguments.callee可解决问题,这是一个指向正在执行的函数的指针。

改进后的js递归函数:
 

复制代码 代码示例:

function fact(num){
if (num<=1){
return 1;
}else{
return num*arguments.callee(num-1); //此处更改了。
}
}

var anotherFact = fact;
fact = null;
alert(antherFact(4)); //结果为24.