日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
詳解Javascript中的深拷貝和淺拷貝

數(shù)據(jù)復(fù)制是我們編程中經(jīng)常會(huì)使用的技術(shù),對(duì)于普通數(shù)值數(shù)據(jù)來(lái)說(shuō),復(fù)制很簡(jiǎn)單,但是對(duì)于復(fù)雜類型比如對(duì)象的復(fù)制,就會(huì)有很多需要考慮的東西,比如我們經(jīng)常說(shuō)到的深拷貝和淺拷貝。

在網(wǎng)站制作、成都網(wǎng)站制作中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營(yíng)銷成為有效果、有回報(bào)的無(wú)錫營(yíng)銷推廣。成都創(chuàng)新互聯(lián)公司專業(yè)成都網(wǎng)站建設(shè)10年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。

淺拷貝

復(fù)制的對(duì)象和原始對(duì)象屬性相關(guān)聯(lián)。事實(shí)上,如果對(duì)象的任何字段被其他對(duì)象引用,則它們共享相同的內(nèi)存地址。

深拷貝

與淺拷貝不同,深拷貝復(fù)制對(duì)象的所有屬性,并且為新對(duì)象分配新的內(nèi)存地址,我們對(duì)新對(duì)象的操作不會(huì)影響到原對(duì)象,看起來(lái)就像是將原對(duì)象所有的東西都重新復(fù)制出來(lái)一份。

數(shù)據(jù)類型

JavaScript中的數(shù)據(jù)類型分為原始數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型。

數(shù)值,字符串,布爾值,undefined,null為原始數(shù)據(jù)類型,而數(shù)組和對(duì)象則是復(fù)合類型。

原始數(shù)據(jù)進(jìn)行復(fù)制克隆的時(shí)候,永遠(yuǎn)都是新的副本,不會(huì)和原來(lái)數(shù)據(jù)進(jìn)行關(guān)聯(lián),而復(fù)合數(shù)據(jù)進(jìn)行淺拷貝的時(shí)候,只是分配值的引用。

創(chuàng)建深拷貝

對(duì)于克隆對(duì)象,如果我們想要進(jìn)行深拷貝,那么我們經(jīng)常使用的方法就是JSON.parse()和JSON.stringify()。

數(shù)組Map,ForEach和Slice

對(duì)于普通的一維數(shù)組,函數(shù)Map,ForEach,Slice都提供深拷貝的功能,但是對(duì)于嵌套數(shù)組,這些函數(shù)對(duì)于內(nèi)部數(shù)組的處理不提供深拷貝的功能。

總結(jié)

Object.assign和Object.create都可以進(jìn)行對(duì)象的復(fù)制。

使用assign方法時(shí),我們必須確保對(duì)象至少?gòu)?fù)制第二個(gè)參數(shù)。通常你只會(huì)傳遞一個(gè)空對(duì)象作為第一個(gè)參數(shù)。它不提供類似于擴(kuò)展運(yùn)算符的完整拷貝。

使用create方法時(shí),現(xiàn)有對(duì)象作為新創(chuàng)建對(duì)象的原型創(chuàng)建一個(gè)新對(duì)象。現(xiàn)有對(duì)象作為原型可用,從而使所有屬性都可用于新對(duì)象。但就復(fù)制而言,它提供了部分深復(fù)制,如分配和擴(kuò)展運(yùn)算符。

在 JavaScript 中復(fù)制對(duì)象的唯一陷阱是嵌套值。


文章名稱:詳解Javascript中的深拷貝和淺拷貝
本文路徑:http://www.dlmjj.cn/article/dhdggeh.html