[英]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.