JavaScript中匿名函数的递归(使用arguments和callee属性实现)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/acoolgiser/article/details/86134474

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

猜你喜欢

转载自blog.csdn.net/acoolgiser/article/details/86134474
今日推荐