命名匿名函数是否安全?

时间:2013-06-27 21:26:13

标签: javascript anonymous-function

随着Promises趋势上升,我们经常会看到:

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

这些评论可能对新手有所帮助,但我更倾向于命名匿名函数,如下所示:

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

在这种情况下,命名匿名函数是有道理的,但它是否安全?我在这里看过较早的帖子,引用this article作为关于IE的警告,但有人知道这是否仍然是IE9的问题?

1 个答案:

答案 0 :(得分:5)

是的,使用命名函数表达式是安全的 1 。您提到的错误在IE9中不再存在(尽管在IE8中也存在)。

命名表达式的另一个优点是用于调试。而不是(anonymous),您将看到一个有意义的名称。

1
对于那些不知道的人:在Internet Explorer(包括版本8)中,命名变量将在以下代码中泄漏:

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