【发布时间】:2020-10-30 14:20:49
【问题描述】:
我发现自己遇到了 Javascript 的一个特殊问题。我正在尝试维护我必须发布的状态对象/ dictionary (dict1) 和最终对象/ dictionary(dict2) 的形式。
单击某些按钮时,我将对象 dict1 分配给我的对象 dict2。我想要做的是删除 dict2 中的键,但行为很特殊,因为它也 删除 dict1 中的键。以下是我的代码:
dict1 = {
123:{
456:2
}
}
dict2 = {}
dict2[123] = dict1[123]
delete dict2[123][456]
console.log(dict1)
// It logs {123 : {} } whereas the dict1 shouldn't change
似乎对象在某种程度上是浅拷贝。
【问题讨论】:
-
你回答了你自己的问题:对象是浅拷贝的
-
^ 表示
dict1[123]和dict2[123]都指向完全相同的对象{456: 2}(在内存中的同一位置)。
标签: javascript json dictionary object