js中的淺克隆和深克隆

首先,js中的數(shù)據(jù)類型有簡單類型和引用類型。
對于字符串類型,淺克隆是對值的復(fù)制,對于對象:
淺克隆是指沒有開辟新的棧,是對對象地址的復(fù)制。共享同一塊內(nèi)存地址,一個對象的改變影響了另一個對象。
深克隆是指兩個對象對應(yīng)不同的地址。

JQuery中的extend的第一個參數(shù)可以設(shè)置是否為深拷貝

//深拷貝
var  obj = {a:{a:1}};
var  obj1 = {a:{a:2}};
$.extend(true, obj, obj1);

最簡單的深拷貝

b = JSON.parse( JSON.stringify(a) )
//缺點
無法復(fù)制函數(shù)
原型鏈沒了,對象就是object,所屬的類沒了。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進(jìn)階之旅閱讀 115,563評論 24 450
  • 1、javaScript的變量類型 (1)基本類型:5種基本數(shù)據(jù)類型Undefined、Null、Boolean、...
    wengjq閱讀 870評論 0 15
  • 值類型與引用類型 談淺拷貝與深拷貝之前,我們需要先理清一個概念,即值類型與引用類型。 什么是值類型與引用類型?這要...
    franose閱讀 662評論 1 8
  • 307、setValue:forKey和setObject:forKey的區(qū)別是什么? 答:1, setObjec...
    AlanGe閱讀 1,720評論 0 1
  • 最近在復(fù)習(xí),發(fā)現(xiàn)前端好多知識點牽一發(fā)動全身。比如我想看一下JQuery的extend源碼,就不得不再好好看看深克隆...
    二璇妹妹閱讀 1,641評論 2 9

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