Javascript中匿名函数的递归调用

那么存不存在一种完全不需要这种给予准确函数名(函数引用变量名)的方式呢?

arguments.callee

我们知道在任何一个 function 内部,都可以访问到一个叫做 arguments 的变量。

(function(){console.dir(arguments)})(1,2)

打印出这个 arguments 变量的细节,可以看出他是 Arguments 的一个实例,而且从数据结构上来讲,他是一个类数组。他除了类数组的元素成员和 length 属性外,还有一个 callee 方法。 那么这个 callee 方法是做什么的呢?我们来看下 MDN

callee 是 arguments 对象的属性。在该函数的函数体内,它可以指向当前正在执行的函数。当函数是匿名函数时,这是很有用的, 比如没有名字的函数表达式 (也被叫做"匿名函数")。

哈哈,很明显这就是我们想要的。接下来就是:

(