最近发现基础知识还是很重要的 之前学过不太扎实都忘光了 所以最近捡一捡
如果觉得文章还不错 请留下个贊吧!
什么是深拷贝什么是浅拷贝?
浅拷贝: 仅仅是复制了原对象的存储地址,原对象变化 复制地址的对象也会变化(简单的对象)
const m1 = {a1: {b1: {c1: 12454}, d1: [1,23,4,5,7,89876,5665]}, a2: [1,23,4,567,888765,2,5]};
const m3 = {...m1};
浅拷贝示例: 仅仅是将最外层的数据进行了重新复制, 内部的数据还是复制的存储地址。
浅拷贝示例:
const shallowCopy = function(obj) {
if (typeof obj !== 'object') return ;
let newo = obj instanceof Array ? [] : {};
for (const key in obj) {
newo[key] = obj[key];
}
return newo;
};
上面的浅拷贝既然是最外层的已经不是一致的了 那我们深拷贝 就在复制值的时候判断一下是不是对象 数组,如果不是直接复制 ,如果是 接着调用 浅拷贝的数据呗。