js 赋值的问题
let bbb = {
a:1,
b:2,
c:3,
d:4
}
let aaa = bbb
aaa.b = 3
console.log(bbb)
bbb.b 为什么等于3了?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
let bbb = {
a:1,
b:2,
c:3,
d:4
}
let aaa = bbb
aaa.b = 3
console.log(bbb)
bbb.b 为什么等于3了?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
因为JavaScript对象是引用类型。aaa.b 依然指向 bbb.b。通过深度克隆可以实现改变aaa.b的值不影响bbb.b。
bbb 是引用类型, aaa 是它的别名(
aaa=bbb
默认浅复制) 二者指向同一内容修改aaa.b时,bbb.b也被修改。若想不变,bbb 则必需是aaa内容的副本,可以深度复制实现,而不能直接用
aaa=bbb
。