【发布时间】:2012-07-03 04:45:56
【问题描述】:
可能重复:
What is the most efficient way to clone a JavaScript object?
我有一个这样的对象:
User = {
name: "user",
settings: {
first: "1",
second: "2"
}
}
还有第二个:
user1 = {
name: "user1",
settings: {
second: "3"
}
}
现在我想将 user1 的自定义值复制到 User 中,使用:
for(var key in user1){
User[key] = user1[key];
}
结果用户将是:
User = {
name: "user1",
settings: {
second: "3"
}
}
User.settings 已被完全替换,而我只想替换 settings.second。
如何在不知道主对象有多少子对象的情况下做到这一点?
【问题讨论】:
-
使用递归?您是否搜索过深层 Object.copy 函数?
-
由于 javascript 传递对象的方式(通过引用),深度复制嵌套对象实际上是一种考验。我会听从@Bergi 的建议并找到一个预先存在的。
-
"这个问题以前有人问过,已经有了答案。"所以我问版主,在哪里?以前在哪里问过?为什么要让用户去挖掘并找到它?
-
this implementation 会做这项工作吗?
标签: javascript object