您好,匿名用户

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

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没变,什么原理,网上查了一下也没得出什么有用的结论啊
用户头像 提问 5月25日 @ Twisted Fate 中士 (1,154 威望)
分享到:

1个回答

0 投票
 
最佳答案

Object.assign() 拷贝的是属性值。假如源对象的属性值是一个对象的引用,那么它也只指向那个引用

简单来说,就是通过 Object.assign 拷贝的对象,如果对象的属性是简单数据类型,那么它与源对象之间是不相关的,如果是引用类型,那么改变拷贝对象的属性也会影响到源对象

用户头像 回复 5月25日 @ Irelia 中士 (1,327 威望)
选中 5月12日 @Twisted Fate
提一个问题:

相关问题

0 投票
0 回复 321 阅读
用户头像 提问 2017年 3月1日 @ Nasus 中士 (1,324 威望)
0 投票
1 回复 138 阅读
0 投票
1 回复 233 阅读
用户头像 提问 2017年 2月18日 @ Olaf 中士 (1,376 威望)
0 投票
1 回复 113 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...