Object.assign的问题,为什么只改变了1个值?

即将下岗的码农 发布于 04/01 10:25
阅读 46
收藏 0
let obj = { name: '程序猿', age:{child: 12} }
let copy = Object.assign({}, obj);
copy.name = '单身狗'
copy.age.child = 24
console.log(obj) // { name: '程序猿', age:{child: 24} }

为什么child改变了,但name没变,什么原理,网上查了一下也没得出什么有用的结论啊
加载中
0
KevinBlandy
KevinBlandy

 

因为你console.log的是obj对象。它的age属性被改变是因为。copy对象是个浅克隆对象。它俩的age属性都指向了同一个对象。所以你修改copy对象的age属性。影响到obj对象的age属性。

返回顶部
顶部