arguments和callee属性
函数的内部调用函数本身的话,可以直接写函数的名字来实现,但是如果是匿名函数的话,这样的做法就行不通了。
解决的办法是有的,使用arguments和callee属性的话就可以调用函数本身了。arguments对象是函数被调用的时候自动生成的,而callee属性就是这个函数本身的引用,使用这种方法的话,即使是匿名函数也可以实现递归。
如下:可以使用setTimeout+arguments.callee组合来实现。
var count = 0;
(function(){
if(count<10)
{
console.log(count+"callee");
}
count++;
arguments.callee();//递归
//或
//setTimeOut(arguments.callee,1000);
})();
执行结果:

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=24a4nfrmebi84
本文介绍如何使用arguments和callee属性使匿名函数能够调用自身,实现递归。通常,函数通过直接引用其名称来自我调用,但匿名函数无法采用此方式。文章提供了一个使用setTimeout和arguments.callee实现递归的示例。
1330

被折叠的 条评论
为什么被折叠?



