通常javascript代码可以与HTML标签一起直接放在前端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿,因此需要知道js函数的递归调用方法。
js函数的递归调用方法
1.通过函数自身名字递归调用
复制代码
functionsum(num){
if(num<=1){
return1;
}else{
returnnum+sum(num-1);
}
}
console.log(sum(5));//15
复制代码
这种通过函数名字调用自身的方式存在一个问题:函数的名字是一个指向函数对象的指针,如果我们把函数的名字与函数对象本身的指向关系断开,这种方式运行时将出现错误。
2.通过arguments.callee调用函数自身
复制代码
functionsum(num){
if(num<=1){
return1;
}else{
returnnum+arguments.callee(num-1);
}
}
console.log(sum(5));//15
varsumAnother=sum;
console.log(sumAnother(5));//15
sum=null;
console.log(sumAnother(5));//15
复制代码
这种方式很好的解决了函数名指向变更时导致递归调用时找不到自身的问题。但是这种方式也不是很完美,因为在严格模式下是禁止使用arguments.callee的。
js递归函数怎么自己调用自己
functionsetNum(i){
if(i>2){
i--;
returnsetNum(i);
}else{
returni;
}
}
$("#_div").click(function(){
varm=setNum(6);
$("#_div").html("点击"+m);
})
上一篇:怎么理解js监听浏览器后退事件
下一篇:EaselJS有什么作用