js中的深拷貝與淺拷貝

//例子1

var a = 30;

var b = a;

b= 20;

console.log(a,b)//30,20

//例子2

var a = {m:20,n:30};

var b = a;

b.m = 40;

console.log(a,b)//{m:20,n:30},{m:40,n:30}

在JavaScript中,我們要取得的值,其實(shí)是通過(guò)對(duì)象指向的引用地址波闹,在堆內(nèi)存中對(duì)應(yīng)的值轻黑。

在例子1中 a=30帚屉;在變量對(duì)象中的數(shù)據(jù)發(fā)生復(fù)制行為時(shí)寺渗,系統(tǒng)會(huì)自動(dòng)為新的變量分配一個(gè)新值。var b =a執(zhí)行之后击奶,a與b雖然值都等于20拍谐,但是他們其實(shí)已經(jīng)是相互獨(dú)立互不影響的值了.

在例子2 中 我們通過(guò)var b = a執(zhí)行一次復(fù)制引用類(lèi)型的操作烛缔。引用類(lèi)型的復(fù)制同樣也會(huì)為新的變量自動(dòng)分配一個(gè)新的值保存在變量對(duì)象中,但不同的是轩拨,這個(gè)新的值践瓷,僅僅只是引用類(lèi)型的一個(gè)地址指針。當(dāng)?shù)刂分羔樝嗤瑫r(shí)亡蓉,盡管他們相互獨(dú)立晕翠,但是在變量對(duì)象中訪問(wèn)到的具體對(duì)象實(shí)際上是同一個(gè).

例子2就屬于淺拷貝,所謂淺拷貝就是復(fù)制了對(duì)象的指針地址砍濒,當(dāng)有一方改變時(shí)淋肾,另一方也會(huì)發(fā)生改變硫麻。

深拷貝就是把這個(gè)對(duì)象的所有屬性都拷貝出去,但是會(huì)指向不同的指針地址樊卓。兩個(gè)已經(jīng)是相互獨(dú)立的個(gè)體庶香,不會(huì)發(fā)生改變。

對(duì)象和數(shù)組的深拷貝方法简识。

1.數(shù)組

var a = [12,22];

var b = a;

b[0] = 'hello';

console.log(a,b)//['hello',22],['hello',22]

顯然上面這種情況不是我們想要的,b數(shù)組的改變不能影響a;

var a = [12,22];

var b = a.conact();

b[0] = 'hello';

console.log(a,b)//[12,22],['hello',22]

var a = [12,22];

var b = a.slice(0);

b[0] = 'hello';

console.log(a,b)//[12,22],['hello',22]

var a = [12,22];

var [...b] = a;

b[0] = 'hello';

console.log(a,b)//[12,22],['hello',22]

對(duì)象的深拷貝

var a ={

? ? m:20,

? ? n:30

}

var b = a ;

b.m ='hello';

console.log(a,b)//{m:'hello',n:30},{m:'hello',n:30}

var a ={

? ? m:20,

? ? n:30

}

var b = Json.parse(Json.stringify(a)) ;

b.m ='hello';

console.log(a,b)//{m:20,n:30},{m:'hello',n:30}

var a ={

? ? m:20,

? ? n:30

}

var {...b}= a;

b.m = 'hello';

console.log(a,b)//{m:20,n:30},{m:'hello',n:30}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末感猛,一起剝皮案震驚了整個(gè)濱河市七扰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陪白,老刑警劉巖颈走,帶你破解...
    沈念sama閱讀 212,029評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異咱士,居然都是意外死亡立由,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)序厉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锐膜,“玉大人,你說(shuō)我怎么就攤上這事弛房〉勒担” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,570評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵文捶,是天一觀的道長(zhǎng)荷逞。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粹排,這世上最難降的妖魔是什么种远? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,535評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮顽耳,結(jié)果婚禮上坠敷,老公的妹妹穿的比我還像新娘。我一直安慰自己斧抱,他們只是感情好常拓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著辉浦,像睡著了一般弄抬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宪郊,一...
    開(kāi)封第一講書(shū)人閱讀 49,850評(píng)論 1 290
  • 那天掂恕,我揣著相機(jī)與錄音拖陆,去河邊找鬼。 笑死懊亡,一個(gè)胖子當(dāng)著我的面吹牛依啰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播店枣,決...
    沈念sama閱讀 39,006評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼速警,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鸯两?” 一聲冷哼從身側(cè)響起闷旧,我...
    開(kāi)封第一講書(shū)人閱讀 37,747評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钧唐,沒(méi)想到半個(gè)月后忙灼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钝侠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評(píng)論 2 327
  • 正文 我和宋清朗相戀三年该园,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帅韧。...
    茶點(diǎn)故事閱讀 38,683評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡里初,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弱匪,到底是詐尸還是另有隱情青瀑,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評(píng)論 4 330
  • 正文 年R本政府宣布萧诫,位于F島的核電站斥难,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏帘饶。R本人自食惡果不足惜哑诊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望及刻。 院中可真熱鬧镀裤,春花似錦、人聲如沸缴饭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,772評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)颗搂。三九已至担猛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背傅联。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,004評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工先改, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蒸走。 一個(gè)月前我還...
    沈念sama閱讀 46,401評(píng)論 2 360
  • 正文 我出身青樓仇奶,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親比驻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子该溯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評(píng)論 2 349

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

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,132評(píng)論 0 13
  • 前言 最先接觸編程的知識(shí)是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識(shí)步咪,c語(yǔ)言,java語(yǔ)言益楼,單片機(jī)的匯編語(yǔ)言等猾漫;大學(xué)畢...
    oceanfive閱讀 3,049評(píng)論 0 7
  • 某次二面時(shí),面試官問(wèn)起Js排序問(wèn)題感凤,吾絞盡腦汁回答了幾種悯周,深感算法有很大的問(wèn)題,所以總計(jì)一下陪竿! 排序算法說(shuō)明 (1...
    流浪的先知閱讀 1,189評(píng)論 0 4
  • 是不在思雅不思 追思憶思往憶思 俱思往思憶別撕 憶往思俱懷思
    終別閱讀 74評(píng)論 0 0
  • 秦玥飛 遲子建 《泥濘》 茅盾文學(xué)獎(jiǎng)獲得者 郭小平 臨汾紅絲帶學(xué)校 吉卜林《如果》 王千源 ...
    袁自云閱讀 362評(píng)論 0 2