变量值不随变量变化
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]
事情是这样的。我已经声明了以下变量来连接我的对象:
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]