繁体   English   中英

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

[英]javascript: how to refer to an anonymous function within the function itself?

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

var f = function g() {
    //g
}

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

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

function f() {
    f();
}

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

这是一个相当复杂的方法,但它有效:

http://jsfiddle.net/4KKFN/4/

var f = function() {
    function f() {
        if (confirm('Keep going?')) {
            this.apply(this);
        }
    }
    f.apply(f);
}

f();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM