我正在考虑这个:
function outer()
{
var myVar = 1;
function inner()
{
alert(myVar);
}
}
现在,据我了解,这将导致对变量进行两次查找 - 一次查找检查内部函数中的局部变量,一次查找外部函数 - 此时找到变量。
问题是 - 与此相比,这是否会对性能造成特别大的消耗:
function myFunc ()
{
var myVar = 1;
alert(myVar);
}
这只需要对变量进行一次查找 - 然后将其作为局部变量找到。
最佳答案
在较旧的 JS 引擎中,范围查找可能会对性能造成一些影响。
但是,即使在几年前,这也只是一个非常非常小的差异 - 并不是您需要担心的事情。
今天的引擎很可能能够像这样优化查找,而且一般来说它们的性能要好得多。除非您正在编写一些完全疯狂的东西或针对性能非常差的设备,否则这不是您需要担心的事情。
关于JavaScript 变量解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16125866/