深淺拷貝

先來了解一下這些:在js中變量類型基本分為兩種:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型;
基本類型:Underfied Null Boolean Number String。(保存在棧內(nèi)存)
引用類型:可能包含多個值的對象。(保存在堆內(nèi)存中)
根本原因在于保存在棧內(nèi)存的必須是大小固定的數(shù)據(jù),引用類型的大小不固定镇饺,只能保存在堆內(nèi)存中,但是我們可以把它的地址寫在占內(nèi)存中以供我們訪問琢歇。
深淺拷貝:
淺拷貝:1)在復(fù)制基本數(shù)據(jù)類型時兰怠,我們直接使用=完成復(fù)制
2)在引用類型的時候梦鉴,我們循環(huán)遍歷對象,對每個屬性或值使用=完成復(fù)制
深拷貝:深復(fù)制實現(xiàn)的方式:對屬性中所有引用類型的值揭保,遍歷到是基本類型的值為止肥橙,從這種方式上,我們很容易就可以想到利用遞歸來實現(xiàn)深復(fù)制秸侣。

function deepCopy (obj) {
    var result;

    //引用類型分?jǐn)?shù)組和對象分別遞歸
    if (Object.prototype.toString.call(obj) == '[object Array]') {
      result = []
      for (i = 0; i < obj.length; i++) {
        result[i] = deepCopy(obj[i])
      }
    } else if (Object.prototype.toString.call(obj) == '[object Object]') {
      result = {}
      for (var attr in obj) {
        result[attr] = deepCopy(obj[attr])
      }
    }
    //值類型直接返回
    else {
      return obj
    }
    return result
}

對于深淺復(fù)制的區(qū)別存筏,其實核心的關(guān)鍵點就是是只復(fù)制了第一屬性還是完全復(fù)制了所有的屬性,使用slice和concat對對象數(shù)組的拷貝,整個拷貝還是淺拷貝味榛,拷貝之后數(shù)組各個值的指針還是指向相同的存儲地址椭坚。
因此,slice和concat這兩個方法搏色,僅適用于對不包含引用對象的一維數(shù)組的深拷貝
轉(zhuǎn)載于https://segmentfault.com/a/1190000008838101

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末善茎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子频轿,更是在濱河造成了極大的恐慌垂涯,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件航邢,死亡現(xiàn)場離奇詭異耕赘,居然都是意外死亡,警方通過查閱死者的電腦和手機膳殷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門操骡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赚窃,你說我怎么就攤上這事册招。” “怎么了考榨?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵跨细,是天一觀的道長。 經(jīng)常有香客問我河质,道長冀惭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任掀鹅,我火速辦了婚禮散休,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乐尊。我一直安慰自己戚丸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著限府,像睡著了一般夺颤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胁勺,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天世澜,我揣著相機與錄音,去河邊找鬼署穗。 笑死寥裂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的案疲。 我是一名探鬼主播封恰,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼褐啡!你這毒婦竟也來了诺舔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤春贸,失蹤者是張志新(化名)和其女友劉穎混萝,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萍恕,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年车要,在試婚紗的時候發(fā)現(xiàn)自己被綠了允粤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡翼岁,死狀恐怖类垫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琅坡,我是刑警寧澤悉患,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站榆俺,受9級特大地震影響售躁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茴晋,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一陪捷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诺擅,春花似錦市袖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酒觅。三九已至,卻和暖如春微峰,著一層夾襖步出監(jiān)牢的瞬間舷丹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工县忌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掂榔,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓症杏,卻偏偏與公主長得像装获,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厉颤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容

  • underscore 的源碼中穴豫,有很多地方用到了 Array.prototype.slice() 方法,但是并沒有...
    theCoder閱讀 599評論 0 1
  • 在網(wǎng)上瀏覽了不少關(guān)于深淺拷貝的解析逼友,在此精肃,要總結(jié)的幾點內(nèi)容大致如下: 基本類型和引用類型 淺拷貝與深拷貝的區(qū)別 常...
    Weastsea閱讀 623評論 0 3
  • 簡單講呢,深淺拷貝帜乞,都是進(jìn)行復(fù)制司抱,那么區(qū)別主要在于復(fù)制出來的新對象和原來的對象是否會互相影響,改一個黎烈,另一個也會變...
    _千尋瀑_閱讀 251評論 0 2
  • 世界上最溫柔的風(fēng) 就是車速達(dá)到66邁左右不多不少的時候 手伸出窗外大概一個手掌的距離不長不短 那觸不可及的風(fēng)在你手...
    Rush_she閱讀 279評論 0 0
  • 1.配置 root的build.gradle 2.配置module的build.gradle 3.繼續(xù)配置modu...
    Wang_Mr閱讀 412評論 0 0