在JavaScript中,引用对象与#x27;声明对象的新键:值对时使用'this',与使用'this'的比较?
在JavaScript中,在声明对象的新键:值对时,引用对象的变量名和使用在JavaScript中,引用对象与#x27;声明对象的新键:值对时使用'this',与使用'this'的比较?,javascript,Javascript,在JavaScript中,在声明对象的新键:值对时,引用对象的变量名和使用this之间是否有区别 var foo = { bar: function() { foo.qux = 'value'; } }; alert(foo.qux); // undefined foo.bar(); alert(foo.qux); // 'value' var foo = { bar: function()
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
,您使函数依赖于变量的名称,因此每当变量更改时,函数都会中断。这也是代码重构的一个重要方面。请欣赏第一句话,因为这是一个过于简单的示例。从组织和代码可读性的角度来看,我认为这种使用对象变量名的模式非常有用,特别是当您使用的全局对象的变量名不会改变,并且您的应用程序使用了大量的事件驱动逻辑时。我肯定会提倡最糟糕的做法,但这只是一个想法。