浅拷贝只是拷贝一层, 更深层次对象级别的只拷贝引用
深拷贝拷贝多层, 每一级别的数据都会拷贝

1、浅拷贝

方法一:

202109261632621019881065

控制台:

202109261632621039758972

其中的msg是个对象,浅拷贝会msg的地址拷贝给o,即o里面的msg与obj里面的msg指向的是同一个数据

这时候修改o里面的msg也会让obj里面的数据发生改变

202109261632621172826802

202109261632621229172385

202109261632621258132998

方法二:Object.assign(o, obj);

202109261632621413790036

2、深拷贝:

202109261632621479150247

使用函数递归完成深拷贝

202109261632622130123109

控制台:

202109261632622175148137

数组也属于Object对象,所以在需要判断数组与对象时,必须先判断是否为数组

202109261632622247126451

控制台:

202109261632622264145745