1

假设我总共有 6 个全局变量,我要在一个函数中调用它们。

如果我每次调用它们 3 次,在函数中创建一个局部变量是否已经更好,它会更快地运行函数吗?

我目前正在使用每个 20 次,所以我猜它肯定更好?我在谷歌浏览器中查看网络时间,但我想这是一个太小的测试,因为我总是得到 6-7 毫秒。

我将表的长度放在 var 中,有人告诉我会运行“for”而不是每次都获取长度,最好将其存储在函数的本地 var 中。然后我有 6 个其他变量分配给函数中的本地变量,这是最佳做法吗?如果是这样,如果我至少要调用该变量多少次,您会说什么时候最好在函数中声明局部变量?

4

1 回答 1

4

如果我每次调用它们 3 次,在函数中创建一个局部变量是否已经更好,它会更快地运行函数吗?

没有任何可察觉的程度。您应该避免使用全局变量的原因是因为它们可能与您正在运行的任何 3rd 方实用程序发生冲突,可能与您的浏览器正在运行的任何插件发生冲突,并且坦率地说会使代码更难阅读。

如果您的函数需要 6 个变量,则在函数内部创建这些变量。

如果您有 3 个函数都共享相同的 6 个变量,那么您就有了一个非常想创建的对象——重构您的代码以反映这一点。

所以是这样的:

var a = 1,
    b = 2,
    c = 3;

function f1(){
    //use a, b, and c
}

function f2(){
    //use a, b, and c
}

会变成这样:

var obj = {
    a: 1,
    b: 2,
    c: 3,
    f1: function(){
       alert(this.a);
    },
    f2: function(){
       //use this.a, this.b, and this.c
    }
};

当然,如果您希望 a、b 和 c 对对象是私有的,您可以通过闭包获得创意:

var obj = (function(){
   var a = 1,
       b = 2,
       c = 3;
   return {
      f1: function(){
         alert(a);
      },
      f2: function(){
         //use a, b, and c
      }
   };
})();
于 2013-06-02T18:13:38.377 回答