JS全局变量到本地等效

时间:2014-04-27 09:48:51

标签: javascript optimization global-variables local-variables

简单的问题 - 如果我们对它们做了很多动作,是否值得在函数内部创建局部等价的全局变量?

var global = $(elements);

function foo(){
    var local = global;
    // lots of actions on local
}

function foo2(){
    // lots of actions on global
}

据我所知,引用全局变量会强制脚本访问全局范围并从中获取值。我只是想知道是否值得使用它们的函数的全局内部?

2 个答案:

答案 0 :(得分:3)

它有助于创建本地副本,因为变量分辨率从最本地开始,然后查看全局命名空间,使其变慢。

在某些旧浏览器中速度要慢得多。

以下是基准:http://jsperf.com/global/25

更新

在另一个测试用例中添加了一个更新版本,从理论上可以看出大部分性能影响都来自于范围链。

http://jsperf.com/global/30

答案 1 :(得分:0)

你没有什么可担心的。 通常不鼓励使用全局变量,因为这可能会使您更难以编写代码。 全局变量的性能影响非常小。