深淺拷貝

最近發(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ù)唄。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、拷貝示例 當(dāng)我們在操作數(shù)據(jù)之前,可能會遇到這樣的情況: 會經(jīng)常改動一組數(shù)據(jù),但可能會用到原始數(shù)據(jù) 我需要兩組一...
    寒羽鹿閱讀 329評論 0 0
  • 如何區(qū)分深拷貝與淺拷貝,簡單點(diǎn)來說,就是假設(shè)B復(fù)制了A,當(dāng)修改A時,看B是否會發(fā)生變化,如果B也跟著變了,說明這是...
    愛上西紅柿炒蛋閱讀 315評論 0 0
  • ---針對引用類型 傳統(tǒng)復(fù)制 將兩個變量都指向了同一塊內(nèi)存空間,A變動B也會隨之變動; JavaScript le...
    米婭小棧閱讀 317評論 0 0
  • underscore 的源碼中,有很多地方用到了 Array.prototype.slice() 方法,但是并沒有...
    theCoder閱讀 666評論 0 1
  • [TOC] 引言 根據(jù)拷貝內(nèi)容的不同,分為深淺拷貝 深拷貝:內(nèi)容拷貝,且將指針指向新的內(nèi)容 淺拷貝:只是簡單的指針...
    時間已靜止閱讀 1,771評論 1 14

友情鏈接更多精彩內(nèi)容