javascript:如何在函数本身中引用匿名函数?

Pac*_*ier 5 javascript function anonymous-function scoping

如果在"use strict"中不允许arguments.callee,我们就做不到

var f = function g() {
    //g
}
Run Code Online (Sandbox Code Playgroud)

因为在IE中不起作用(或者说"奇怪")http://kangax.github.com/nfe/#jscript-bugs,那么我们还有哪些其他选项可以引用函数中的匿名函数本身?

Mat*_*all 4

不要使用命名函数表达式。只需以正常方式声明并初始化它即可。

function f() {
    f();
}
Run Code Online (Sandbox Code Playgroud)

ES5 strict 的唯一可行替代方案是使用问题中的代码,并处理 IE 蹩脚的 NFE 实现。但是:你真的希望一个会出现如此可怕的 NFE 错误(咳咳,IE)的浏览器"use strict"很快就会实现吗?

  • @Pacerier:在全局或函数代码中允许函数声明,但在块内不允许。 (2认同)