未命名函数JavaScript的递归函数调用

And*_*sen 1 javascript recursion

我在JavaScript中搜索了Recursive Calls,但我想对"未命名"函数进行递归调用.

我发现使用谷歌的结果是这样的

function foo() {
   setTimeout("foo()",0);
}
Run Code Online (Sandbox Code Playgroud)

但是我想做一些像这样的东西:

(function () { alert(this.function) })()
Run Code Online (Sandbox Code Playgroud)

这可能吗?

fca*_*ran 5

如果您不在,则strict mode可以使用该函数对象arguments.callee,请参阅MDN文档.例如

(function () { 
    console.log(typeof arguments.callee); // "function"
    arguments.callee(); // call to itself
})(); 
Run Code Online (Sandbox Code Playgroud)

但正如在那里所建议的那样,你应该避免使用这个语句并为函数提供一个标识符,就像这样

(function foo() { 
    foo(); // call to itself
})(); 
Run Code Online (Sandbox Code Playgroud)