为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红颜莎娜 2019-04-27 17:18:59
letobj={name:'程序猿',age:{child:12}}letcopy=Object.assign({},obj);copy.name='单身狗'copy.age.child=24console.log(obj)//{name:'程序猿',age:{child:24}}为什么child改变了,但name没变,什么原理,网上查了一下也没得出什么有用的结论啊
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

Object.assign()拷贝的是属性值。假如源对象的属性值是一个对象的引用,那么它也只指向那个引用
简单来说,就是通过Object.assign拷贝的对象,如果对象的属性是简单数据类型,那么它与源对象之间是不相关的,如果是引用类型,那么改变拷贝对象的属性也会影响到源对象
                            
查看完整回答
反对 回复 2019-04-27
?
浮云间

TA贡献1829条经验 获得超4个赞

参考资料:1.js中值类型与引用类型的区别2.js深拷贝与浅拷贝的区别3.Object.assign是浅拷贝。望采纳。
                            
查看完整回答
反对 回复 2019-04-27
  • 2 回答
  • 0 关注
  • 742 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信