1

我在思考这个问题:

function outer()
{
    var myVar = 1;

    function inner()
    {
        alert(myVar);
    }
}

现在,据我了解,这将导致对变量的两次查找——一次查找检查内部函数中的局部变量,一次查找外部函数——此时找到变量。

问题是 - 与此相比,这是否会特别消耗性能:

function myFunc ()
{
    var myVar = 1;

    alert(myVar);
}

这只需要对变量进行一次查找-然后将其作为局部变量找到。

4

1 回答 1

1

在较旧的 JS 引擎中,范围查找可能会对性能产生一些影响。

然而,即使在几年前,这只是一个非常非常小的差异 - 并不是你真正需要担心的事情。

今天的引擎很可能能够像这样优化查找,而且总的来说它们的性能要好得多。除非您正在编写完全疯狂的东西或针对性能非常差的设备,否则您无需担心。

于 2013-04-21T01:26:37.590 回答