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

标签 javascript

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

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

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

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

最佳答案

If i were to call them each 3 times is it already better to create a local variable in the function, would it run the function faster?

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

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

如果您有 3 个函数都共享相同的 6 个变量,那么您有一个迫切希望创建的对象——重构您的代码以反射(reflect)这一点。

所以像这样:

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 对对象私有(private),您可以通过闭包发挥创意:

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

关于javascript - 什么时候在函数中创建局部变量已经更好了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16885760/

相关文章:

javascript - 如何使用 JavaScript 设置 box-shadow CSS 属性?

javascript - 对 JavaScript 创建的 div 进行排序

javascript - CSS-Javascript : Show and Hide div

javascript - 是否有用于组合/压缩 javascript 和 css 的 Magento 扩展?

javascript - 当值为空时,如何将键/值对添加到 Javascript 对象?

javascript - rootScope 更新时出错

javascript - 如何使用 jquery mobile 编辑 RSS 提要

javascript - Django 中没有提交按钮的表单

javascript - 如何在 AngularJS v1.3.3 中使用路由和 ng-view

javascript - expo sdk 40 metro.config.js "Expected ' fromDir' 为 'string' ,得到 'undefined' “