簡體   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