我有以下对象:
var obj1 = {};
obj1.obj2 = {
prop1: 0
};
和以下功能:
function func1() {
var p = obj1.obj2.prop1;
p += 2;
return p;
};
更新“p”时,它尚未更新“obj1.obj2.prop1”。现在它本身就是它自己的对象,而不是指向原始对象的“p”?如果是这样,如何使“p”成为指针?
最佳答案
执行var p = obj1.obj2.prop1;
时,您将p
设置为prop1
的值。因此,当您更新p
时,您只是在更新p
中设置的值。
您可以将p
设置为obj1.obj2
。然后,您可以更新p.prop1
,并且应该更新obj1
。
function func1() {
var p = obj1.obj2;
p.prop1 += 2;
return p.prop1;
}