簡體   English   中英

命名匿名函數安全嗎?

[英]Is it safe to name an anonymous function?

隨着Promises趨勢的發展,我們經常看到:

getSomeData.then(
        // success
    function(data) {
        ...
    },
        // failure
    function(error) {
        ...
    }
);

這些評論可能對新手有所幫助,但是我更喜歡命名匿名函數,如下所示:

getSomeData.then(
    function success(data) {
        ...
    },
    function failure(error) {
        ...
    }
);

在這種情況下,命名一個匿名函數很有意義,但是安全嗎? 我在這里看到過一些較早的帖子, 這些帖子將這篇文章作為對IE的警告,但是沒有人知道這是否仍然與IE9有關嗎?

是的,使用命名函數表達式是安全的1 IE9中不再存在您提到的錯誤(盡管IE8中沒有)。

命名表達式的另一個優點是用於調試。 您會看到一個有意義的名稱,而不是(anonymous)

1
對於那些不知道的人:在Internet Explorer 8及更高版本中,命名變量將在以下代碼中泄漏:

var expressionName = function shouldNotLeak() {};
shouldNotLeak(); // Error in all browsers except for Internet Explorer <= 8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM