概述
来看一个经典的递归函数
function factorical(num){
if(num <= 1){
return 1;
}else{
return num * factorical(num - 1);
}
}
一般情况下这个递归函数是不会出错的,但是看下面一种情况:
var anthorFunction = factorical;
factorical = null;
anthorFunction(4);//这里是会出错的
因为指向原函数的指针就剩下一个,factorical已经不指向原函数,在函数体里调用时出错,如何避免这种情况,
可以使用arguments.callee()来代替函数名,就像这样 return num * arguments.callee(num -1);
最后
以上就是寒冷唇彩为你收集整理的使用arguments.callee来避免递归出错的全部内容,希望文章能够帮你解决使用arguments.callee来避免递归出错所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复