这篇文章主要讲解了“js递归函数调用本函数的方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“js递归函数调用本函数的方式是什么”吧!
通常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递归函数怎么自己调用自己
<divid="_div">点击</div>
<scripttype="text/javascript"src="js/jquery-1.11.1.min.js"></script>
<scripttype="text/javascript">
functionsetNum(i){
if(i>2){
i--;
returnsetNum(i);
}else{
returni;
}
}
$("#_div").click(function(){
varm=setNum(6);
$("#_div").html("点击"+m);
})
</script>
感谢各位的阅读,以上就是“js递归函数调用本函数的方式是什么”的内容了,经过本文的学习后,相信大家对js递归函数调用本函数的方式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。