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

2019-01-17 10:41:37 浏览数 (1)

arguments和callee属性

函数的内部调用函数本身的话,可以直接写函数的名字来实现,但是如果是匿名函数的话,这样的做法就行不通了。 解决的办法是有的,使用arguments和callee属性的话就可以调用函数本身了。arguments对象是函数被调用的时候自动生成的,而callee属性就是这个函数本身的引用,使用这种方法的话,即使是匿名函数也可以实现递归。 如下:可以使用setTimeout+arguments.callee组合来实现。

代码语言:javascript复制
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

0 人点赞