[js] Object.assign()是浅拷贝还是深拷贝?

haizhilin2013
2021-10-20 04:39:43 星期三
js
                    
                        
Object.assign()是浅拷贝还是深拷贝?
Comments per page
< Page 1 / 1 >
hyj443 2021-10-20 03:24:14

如果拷贝的源对象有嵌套对象,那只是拷贝他的引用,不是拷贝整个值,如果是普通类型,就是拷贝它的值。

const target = { a: 1 };
const source = { b: {c: 5}, d: 2 };

const returnedTarget = Object.assign(target, source);

console.log(target == returnedTarget); // true 返回的是目标对象
console.log(target.b == source.b); // true 

source.b.c = 6
source.d = 3
console.log(target.b); // { c: 6 }  目标对象添加的b属性的值是源对象b属性的值的引用
console.log(target.d); // 2

学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布前端知识点(死磕自己,愉悦大家)。希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。在这千变万化,类库层出不穷的前端,建议大家不要等到找工作时,才狂刷题,提倡每日学习!欢迎大家关注3+1开源项目!希望大家每人去学习与思考!(不要为了谁而来,要为自己而努力!

【关注官方公众号】 每天4:30-5:00推送
【公众号推荐】 一起折腾前端算法
【微信学习群】 备注3+1