如果我每次调用它们 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
}
};
})();