块A
obj = {
a: 1,
b: 2,
c: 3,
f: function() {
alert(this.a);
alert(this.b);
alert(this.c);
}
}
Block B
obj = {
a: 1,
b: 2,
c: 3,
f: function() {
var a = this.a;
var b = this.b;
var c = this.c;
alert(a);
alert(b);
alert(c);
}
}
一个方法比另一个更正确/更有效吗? 当然,这只是一个简化的例子 - 在我的代码中有更多变量,我试图做的是通过重新分配当前函数范围内的变量来节省时间,而不需要在函数中每次键入
this.varName
。 它可以工作,但它是否正确?编辑:仅澄清,这些变量将在函数中广泛使用。一般共识似乎是,在这种情况下,通过本地范围的重新分配是正确的方法。
var
,所以你正在创建一些 全局 变量。不过,目前还不清楚你所担心的问题是什么。把一个值复制到本地变量中并没有什么 问题,所以就这个标准来看是“正确”的。 - Pointy