js深拷贝VS浅拷贝怪像,求解释

改变了原对象
obj1 = {a:1,b:{b1:1}}
obj2 = Object.assign({},obj1)
obj2.b.b1=2
console.log(obj1.b.b1)// 2
obj1 = {a:1,b:{b1:1}}
obj2 = Object.assign({},obj1,{})
obj2.b.b1=2
console.log(obj1.b.b1)// 2
未改变原对象
obj1 = {a:1,b:{b1:1}}
obj2 = {a:2,b:{b1:2}}
obj3 = Object.assign({},obj1,obj2)
obj3.b.b1=8
console.log(obj1.b.b1)// 1
阅读 1.6k
1 个回答

如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题