简单的问题 - 如果我们对它们做了很多动作,是否值得在函数内部创建局部等价的全局变量?
var global = $(elements);
function foo(){
var local = global;
// lots of actions on local
}
function foo2(){
// lots of actions on global
}
据我所知,引用全局变量会强制脚本访问全局范围并从中获取值。我只是想知道是否值得使用它们的函数的全局内部?
答案 0 :(得分:3)
它有助于创建本地副本,因为变量分辨率从最本地开始,然后查看全局命名空间,使其变慢。
在某些旧浏览器中速度要慢得多。
以下是基准:http://jsperf.com/global/25
在另一个测试用例中添加了一个更新版本,从理论上可以看出大部分性能影响都来自于范围链。
答案 1 :(得分:0)
你没有什么可担心的。 通常不鼓励使用全局变量,因为这可能会使您更难以编写代码。 全局变量的性能影响非常小。