考虑这两个 block :
block 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
对于当前函数的范围。它有效,但它是否正确?
编辑: 澄清一下,变量将在整个函数中广泛使用。普遍的共识似乎是,为此,通过本地范围重新分配是可行的方法。
最佳答案
视情况而定。如果您只打算使用该值一次,那么增加存储和检索该值的开销是没有意义的。另一方面,如果您在函数范围内多次引用该值,则只获取一次是有意义的。
关于Javascript:函数中的变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7068601/