在JavaScript中,在函数的早期限制var范围是否有性能优势?

时间:2014-09-29 17:30:28

标签: javascript performance scope

假设我有一个功能foo,可以完成很多工作,并且声明了var bar并且只在开头使用。

var foo = function () {
    var bar = 1;
    $('#my-el').click(function () {
        bar += 1;
    });

    //...do lots more work. bar is in scope, but no longer used.
};

正如您所看到的,"点击"处理程序引用条,因此无论foo的剩余内容如何,​​bar都将保留在内存中。但是,bar仍然在foo的剩余部分范围内。我想知道的是,使用立即调用的函数表达式来限制条形范围是否有任何性能优势,如下所示。

var foo = function () {
    (function () {
        var bar = 1;
        $('#my-el').click(function () {
            bar += 1;
        });
    }());
    //...do lots more work. bar is out of scope.
};

假设使用立即调用的函数表达式的开销与foo的总执行时间相比可以忽略不计,那么保持" bar"超出余下的范围以某种方式提高性能?我只关心这里的表现,而不是变更命名冲突或相关问题。

0 个答案:

没有答案