变量值不随变量变化

Variable value is not changing according to the variable

事情是这样的。我已经声明了以下变量来连接我的对象:

    var newObj = obj[property];
    var fullObj = newObj[id];

然后我将 "fullObj" 的值与另一个名为 "Array" 的对象的值进行匹配。我这样做:

fullObj  = Array;

然后 "fullObj" 获得新值,但原始对象,例如:"obj.property.id" 没有。有什么想法吗?

编辑:

这是函数

function updateData(obj, Array, id, property) {
    var newObj = obj[property];
    var fullObj = newObj[id];

    fullObj = Array;
}

我发回的 属性 是 "obj",及其所有内部元素 (obj.property.id)。

如你所见,"fullObj"与说最后一个对象构造是一回事。想象一下像 "object.id["0"] 这样的东西。所以想象 "Array" 的值是 "object.id["1"]。我通过将它们都匹配来给 "fullObj" 该值,但原始对象不会得到它。

我说得够清楚吗?

问题是您是 re-assigning fullObj 变量的值。您可以像那样访问引用的对象,但不能更改它。

无论如何,我不明白按照您的方式这样做有什么意义。你可以像这样直接赋值:

function updateData(obj, Array, id, property) {
    obj[property][id] = Array;
}

您将 fullObj 的引用更改为其他引用 (Array)。 newObj[id] 的引用保持不变。

示例

var a = [1];
var b = a;
b = [2];
console.log(a, b); // it logs [1] [2]