首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候在函数中创建局部变量已经更好了?

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

Stack Overflow用户
提问于 2013-06-03 02:11:07
回答 1查看 73关注 0票数 1

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

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-03 02:13:38

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

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

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

如果你有3个函数都共享相同的6个变量,那么你就有一个非常想要创建的对象--重构你的代码来反映这一点。()

所以就像这样:

代码语言:javascript
复制
var a = 1,
    b = 2,
    c = 3;

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

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

会变成这样:

代码语言:javascript
复制
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对对象是私有的,那么您可以使用闭包进行创造性的操作:

代码语言:javascript
复制
var obj = (function(){
   var a = 1,
       b = 2,
       c = 3;
   return {
      f1: function(){
         alert(a);
      },
      f2: function(){
         //use a, b, and c
      }
   };
})();
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16885760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档