欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

javascript中深拷貝與淺拷貝的區(qū)別是什么

深拷貝概念

江陵ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

一個(gè)引用對(duì)象一般來說由兩個(gè)部分組成:一個(gè)具名的Handle,也就是我們所說的聲明(如變量)和一個(gè)內(nèi)部(不具名)的對(duì)象,也就是具名Handle的內(nèi)部對(duì)象。它在Manged Heap(托管堆)中分配,一般由新增引用對(duì)象的New方法是進(jìn)行創(chuàng)建。深拷貝是指源對(duì)象與拷貝對(duì)象互相獨(dú)立,其中任何一個(gè)對(duì)象的改動(dòng)都不會(huì)對(duì)另外一個(gè)對(duì)象造成影響。舉個(gè)例子,一個(gè)人名叫張三,后來用他克隆(假設(shè)法律允許)了另外一個(gè)人,叫李四,不管是張三缺胳膊少腿還是李四缺胳膊少腿都不會(huì)影響另外一個(gè)人。比較典型的就是Value(值)對(duì)象,如預(yù)定義類型Int32,Double,以及結(jié)構(gòu)(struct),枚舉(Enum)等。

淺拷貝概念

淺拷貝只復(fù)制指向某個(gè)對(duì)象的指針,而不復(fù)制對(duì)象本身,新舊對(duì)象還是共享同一塊內(nèi)存。但深拷貝會(huì)另外創(chuàng)造一個(gè)一模一樣的對(duì)象,新對(duì)象跟原對(duì)象不共享內(nèi)存,修改新對(duì)象不會(huì)改到原對(duì)象。

JS中深拷貝和淺拷貝區(qū)別?

兩者的區(qū)別在于是否是真正獲取了一個(gè)對(duì)象的復(fù)制實(shí)體,而不是引用,深拷貝在計(jì)算機(jī)中開辟了一塊內(nèi)存地址用于存放復(fù)制的對(duì)象,而淺拷貝僅僅是指向被拷貝的內(nèi)存地址,如果原地址中對(duì)象被改變了,那么淺拷貝出來的對(duì)象也會(huì)相應(yīng)改變。

深拷貝

最簡(jiǎn)單的方法就是

JSON.parse(JSON.stringify())
function deepCopy(o) {
    return JSON.parse(JSON.stringify(o))
}
var c = {
    age: 1,
    name: undefined,
    sex: null,
    tel: /^1[34578]\d{9}$/,
    say: () => {
        console.log('hahha')
    }
}
// { age: 1, sex: null, tel: {} }

需要注意的是:這種拷貝方法不可以拷貝一些特殊的屬性(例如正則表達(dá)式,undefine,function)

用遞歸去復(fù)制所有層級(jí)屬性

function deepCopyTwo(obj) {
    let objClone = Array.isArray(obj) ? [] : {};
    if (obj && typeof obj == 'object') {
        for (const key in obj) {
            //判斷obj子元素是否為對(duì)象,如果是,遞歸復(fù)制
            if (obj[key] && typeof obj[key] === "object") {
                objClone[key] = deepCopyTwo(obj[key]);
            } else {
                //如果不是,簡(jiǎn)單復(fù)制
                objClone[key] = obj[key];
            }
        }
    }
    return objClone;
}

淺拷貝

object.assign(target,source)

Object.assign 方法只復(fù)制源對(duì)象中可枚舉的屬性和對(duì)象自身的屬性

如果目標(biāo)對(duì)象中的屬性具有相同的鍵,則屬性將被源中的屬性覆蓋。后來的源的屬性將類似地覆蓋早先的屬性

Object.assign 會(huì)跳過那些值為 [null] null 是一個(gè) JavaScript 字面量,表示空值(null or an "empty" value),即沒有對(duì)象被呈現(xiàn)(no object value is present)。它是 JavaScript 原始值 之一。") 或 undefined 的源對(duì)象。

以上就是JS中深拷貝和淺拷貝區(qū)別?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

新聞標(biāo)題:javascript中深拷貝與淺拷貝的區(qū)別是什么
URL標(biāo)題:http://aaarwkj.com/article4/gghsie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、域名注冊(cè)、移動(dòng)網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)App開發(fā)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
国产精品综合日韩精| 在线欧美日韩一区二区三区| 国产精品一区二区免费式| 亚洲人妻在线一区二区三区| 日韩国产欧美一区二区在线视频| 99热这里只有精品中文有码| 欧美亚洲国产日韩另类| 国产不卡一区不卡二区| 亚洲成在人天堂一区二区| 99国产精品久久久久久| 亚洲成人免费电影久久| 免费av在线网址网站| 欧美黑人少妇高潮喷水| 午夜福利主播一区二区| 欧美亚洲午夜一二综合| 国产成人精品视频午夜蜜蜂| 欧美日韩一区二区三区四区在线观看 | 黄色污网站在线观看免费| 国产成人精品手机在线观看| 欧美日韩国产另类在线视频| 亚洲激情精品成人在线| 黄色av免费播放网站| 最新日韩欧美不卡一二三区| 国产三级在线观看视频| 极品白嫩少妇无套内谢| 亚洲精品国产第一区第二区| 中国成熟女人毛茸茸视频| 精品熟女少妇av免费观看| 蜜桃av一区二区三区在线| 少妇被啪出水在线视频| 亚洲日本成人一区二区| 日韩精品人妻一区二区网站| 久久国产精品99亚洲| 变态另类专区一区二区三区| 亚洲一区二区三区免费观看视频| 一区二区三区中文在线播放| 国产毛片精品一区内射| 欧美一区日韩二区在线| 亚洲av成人永久网站一区| 国产91人妻精品一区二区三区| 黄色免费大片在线播放|