js—深拷贝与浅拷贝(Object.assign)
浅拷贝只是拷贝一层, 更深层次对象级别的只拷贝引用
深拷贝拷贝多层, 每一级别的数据都会拷贝
1、浅拷贝
方法一:
控制台:
其中的msg是个对象,浅拷贝会msg的地址拷贝给o,即o里面的msg与obj里面的msg指向的是同一个数据
这时候修改o里面的msg也会让obj里面的数据发生改变
方法二:Object.assign(o, obj);
2、深拷贝:
使用函数递归完成深拷贝
控制台:
数组也属于Object对象,所以在需要判断数组与对象时,必须先判断是否为数组
控制台: