我有以下对象:

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;
}

10-06 15:26