最近發(fā)現(xiàn)基礎(chǔ)知識還是很重要的 之前學(xué)過不太扎實(shí)都忘光了? 所以最近撿一撿
如果覺得文章還不錯 請留下個贊吧!
什么是深拷貝什么是淺拷貝?
淺拷貝: 僅僅是復(fù)制了原對象的存儲地址,原對象變化 復(fù)制地址的對象也會變化(簡單的對象)
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};
淺拷貝示例: 僅僅是將最外層的數(shù)據(jù)進(jìn)行了重新復(fù)制, 內(nèi)部的數(shù)據(jù)還是復(fù)制的存儲地址。

淺拷貝示例:?
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;
};

上面的淺拷貝既然是最外層的已經(jīng)不是一致的了 那我們深拷貝 就在復(fù)制值的時候判斷一下是不是對象 數(shù)組,如果不是直接復(fù)制 ,如果是 接著調(diào)用 淺拷貝的數(shù)據(jù)唄。
