【发布时间】:2014-05-29 07:49:52
【问题描述】:
我复制对象并更改属性,
好像属性变了,但是对象没有变:
var partCp = myDoorObj['part'][0];
for (var i = 0; i < doorCount; i++) {
partCp['var']['no'] = i + 1;
partCp['var']['_name'] = 'door' + (i + 1);
console.log(partCp);
console.log(partCp['var']['_name']);
myDoorObj['part'].push(partCp);
}
使用控制台日志:
partCp['var']['_name'] 已更改,但控制台中的partCp 对象相同..
那是什么问题??
【问题讨论】:
-
=仅复制参考。你的意思是做一个深拷贝吗?你可能需要一些递归来做到这一点,underscore.js 提供了一个合适的 deepcopy。 -
@chanjianyi 如果您没有得到答案,请感谢 Juhana。
-
Juhanas 的观点是存在一个已知错误,您不能相信控制台会按原样记录对象。此外,虽然,OP 说他只复制了引用时复制了一个对象。
标签: javascript javascript-objects