我想通过引用对象 a 将值 3
设置为 a.b
。
示例:
var a ={};
a.a =1;
a.b =2;
var x = a.b;
alert (a.b);// show 2
x =3;
alert (a.b); // I want to see in this line 3 instead 2.
非常感谢
我怎样才能做到这一点?
最佳答案
你不能这么做。由于 2
是一个基元,因此您没有对它的引用,而 x
实际上具有值 3
。
你可以做的是提供一个函数来修改父对象的属性:
var a = {
a: 1,
b: 2,
setB: function(value) {
this.b = value;
}
}
a.setB(3);
console.log(a.b);
我认为这更干净。
回答你的编辑,是的,有点。这取决于你在做什么。如果您有以下情况:
var a = {
a: {value: 1},
b: {value: 2},
};
var x = a.b;
x = {value: 3};
那么 a.b
仍然是 {value: 2}
,因为您所做的只是使 x
指向不同的对象。但请注意,x
指向 a.b
,它是一个对象,因此,如果您执行 x.value = 3;
, a.b
现在有 {value: 3}
。
关于javascript - 如何通过引用设置值对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043336/