在 JavaScript 中,在声明对象的新键值对时,引用对象的变量名与使用 this
有区别吗?
var foo = {
bar: function() {
foo.qux = 'value';
}
};
alert(foo.qux); // undefined
foo.bar();
alert(foo.qux); // 'value'
var foo = {
bar: function() {
this.qux = 'value';
}
};
alert(foo.qux); // undefined
foo.bar();
alert(foo.qux); // value
最佳答案
仅考虑提供的代码,两者都会做同样的事情。但是有一些事情要记住:
foo
不是对象的名称,它是变量 的名称。
变量是可以改变的。考虑一下:
var bar = foo;
foo = null;
使用 foo
会破坏代码代码,但是当使用 this
时,bar.bar()
仍会按预期工作。
通过使用 foo
,您使函数依赖于变量的名称,因此只要变量发生变化,函数就会中断。这也是代码重构的一个重要方面。
关于javascript - 在 JavaScript 中,在声明新键 :value pairs of the object? 时引用对象的变量名与使用 `this` 之间有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709658/