let bbb = {
a:1,
b:2,
c:3,
d:4
}
let aaa = bbb
aaa.b = 3
console.log(bbb)bbb.b 为什么等于3了?
let bbb = {
a:1,
b:2,
c:3,
d:4
}
let aaa = bbb
aaa.b = 3
console.log(bbb)bbb.b 为什么等于3了?
bbb 是引用类型, aaa 是它的别名(aaa=bbb 默认浅复制) 二者指向同一内容
修改aaa.b时,bbb.b也被修改。若想不变,bbb 则必需是aaa内容的副本,可以深度复制实现,而不能直接用aaa=bbb。
11 回答1.3k 阅读
3 回答967 阅读✓ 已解决
2 回答963 阅读✓ 已解决
3 回答957 阅读✓ 已解决
2 回答649 阅读
3 回答976 阅读
3 回答973 阅读
因为JavaScript对象是引用类型。aaa.b 依然指向 bbb.b。通过深度克隆可以实现改变aaa.b的值不影响bbb.b。