Javascript 变量值不随变量而变化
事情是这样的。我已向concat对象声明了以下变量:Javascript 变量值不随变量而变化,javascript,jquery,object,concat,Javascript,Jquery,Object,Concat,事情是这样的。我已向concat对象声明了以下变量: var newObj = obj[property]; var fullObj = newObj[id]; 然后我将“fullObj”的值与另一个名为“Array”的obj的值进行匹配。我是这样做的: fullObj = Array; 然后“fullObj”获得新值,但原始对象(类似于“obj.property.id”)没有。有什么想法吗 编辑: 这就是函数 function updateData(obj, Array,
var newObj = obj[property];
var fullObj = newObj[id];
然后我将“fullObj”的值与另一个名为“Array”的obj的值进行匹配。我是这样做的:
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”这个值,但是原始对象不会得到它
我说得够清楚了吗?问题是您正在为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]
请提供更完整的代码。你目前对你正在做的事情的描述不清楚。