什么时候在函数中创建局部变量已经更好了?

时间:2013-06-02 18:11:07

标签: javascript

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

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

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

我把一个表的长度放在var中,我被告知会运行'for'而不是每次获取长度,最好将它存储在函数的本地var中。然后我将6个其他变量分配给函数中的局部变量,这是最佳实践吗?如果是这样,你什么时候会说在一个函数中声明一个局部变量更好,如果我要调用该变量至少多少次?

1 个答案:

答案 0 :(得分:4)

  

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

没有任何明显的程度。你应该避免全局变量的原因是因为它们可能与你正在运行的任何第三方实用程序冲突,可能与浏览器运行的任何插件冲突,并且坦率地使代码更难阅读。

如果你的函数需要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
      }
   };
})();