Javascript中的变量引用。通过函数引用全局变量并对它们进行操作

时间:2014-06-03 00:09:01

标签: javascript scope

我正在阅读一篇关于Javascript性能的文章,该文章解释了为什么局部变量比全局变量更容易解决。作者说他们在文章中创建了引用,然后附上了这个例子(函数代码段)。

这个例子让我很困惑,我不知道这个函数是如何创建引用的。在我看来,我认为应该创造一个全新的对象。

在我看来,我已经习惯于在函数中看到全局变量被操纵,我无法解决在这个例子中如何通过引用来操纵全局,是否有人可以给我详细信息。

  function initUI() {
      var doc = document,
          bd = doc.body,
          links = doc.getElementsByTagName("a"),
          i = 0,
          len = links.length;
      while (i < len) {
          update(links[i++]);
      }
      doc.getElementById("go-btn").onclick = function () {
          start();
      };
      bd.className = "active";
  }

1 个答案:

答案 0 :(得分:1)

在您的示例中,document是一个全局变量。从理论上讲,解析全局变量比解析一个存在于函数局部范围内的变量更为昂贵(@RobG指出在某些浏览器中可能不是这样)。因此,如果您发现自己必须多次引用全局变量,则可以考虑创建对该全局变量的本地引用。

E.g。 var doc = document;

然而,这种微观优化很少是必要的,可能被视为过早优化。学习如何优化与DOM相关的操作会更有用。