我显然对JS对象的某些内容不理解。
function baseObject () {
var self = this;
self.value = "value";
self.nestedObject = function () {
var nest = this;
nest.value = self.value;
nest.deepNest = function() {
var deep = this;
deep.value = nest.value;
deep.selfValue = self.value;
};
};
self.nestedObject2 = {
value: self.value,
deepNest: {
value: this.value,
selfValue: self.value
}
};
}
我将分解这个fiddle并尝试让我的问题更清晰。
我对JS对象的理解是,虽然按值传递,但将一个对象设置为另一个对象时,它们应该都指向同一个值,因此当原始对象被更新时,被设置为其等价的对象也会被更新。
见:Javascript指针/引用疯狂。有人能解释一下吗? 首先,我没有看到发生这种情况(这正是我想要发生的)。但更奇怪的是,如果嵌套得足够深,我看到的值实际上变成了NULL,当我改变基本对象时。请帮帮我。我显然错过了什么。
以防万一您的JS引擎与我的不同,在我的计算机上(在Chrome中运行的Windows 7上)结果如下图所示: