简单的问题-如果我们对全局变量进行大量操作,那么在函数内部创建全局变量的局部等价物值得吗?
var global = $(elements);
function foo(){
var local = global;
// lots of actions on local
}
function foo2(){
// lots of actions on global
}
据我所知,引用全局变量会强制脚本访问全局范围并从中获取值。我只是想知道是否值得在使用它们的函数中创建一个全局内部等价物?
它有助于创建本地副本,因为变量解析从最本地的地方开始,并在全局命名空间中查找,使其速度变慢。
在某些较旧的浏览器中速度要慢得多。
以下是一个基准:http://jsperf.com/global/25
更新:
添加了一个更新版本和另一个测试用例,理论上表明大多数性能影响来自范围链的上游。
http://jsperf.com/global/30
您无需担心。通常不鼓励使用全局变量,因为这会使您的代码更难维护。全局变量对性能的影响很小。