第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js深克隆和淺克隆同時存在引發(fā)的問題?

js深克隆和淺克隆同時存在引發(fā)的問題?

繁花不似錦 2019-03-25 11:16:00
js深克隆和淺克隆同時存在引發(fā)的問題?學(xué)習(xí)object.assign寫的demo, 下面現(xiàn)象一直不得其解相關(guān)代碼const target = {   a: 1,   b: 2};const source = {   c: {     deep: false   },   d: [1,2,3] };let cloneObject = Object.assign(target, source); // or {...source}// deep clone methodlet deepObject = Object.assign(target, JSON.parse(JSON.stringify(source))); source.c.deep = true; source.d[0] = 4;console.log(cloneObject);console.log(deepObject);淺克隆和深克隆單獨執(zhí)行,結(jié)果都正常,一起執(zhí)行的話,輸出如下:期待淺克隆輸出true, 深克隆輸出false, 期待給出你的答案
查看完整描述

2 回答

?
手掌心

TA貢獻1942條經(jīng)驗 獲得超3個贊

const target = {

        a: 1,
        b: 2
    };    const source = {
        c: {
            deep: false
        },
        d: [1,2,3]
    };    let cloneObject = Object.assign({},target, source); // or {...source}

    // deep clone method
    let deepObject = Object.assign({},target, JSON.parse(JSON.stringify(source)));

    source.c.deep = true;
    source.d[0] = 4;    console.log(cloneObject);    console.log(deepObject);


查看完整回答
反對 回復(fù) 2019-03-25
?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

因為 Object.assign{target, source} 第一個參數(shù)為目標(biāo)對象,會改變對象中的值的。

因此第二次執(zhí)行 Object.assign 其實是朝同一個 target 上拷貝。

不信你試試執(zhí)行一下:

console.log(cloneObject === deepObject);

看一下是不是返回的 true。


查看完整回答
反對 回復(fù) 2019-03-25
  • 2 回答
  • 0 關(guān)注
  • 1130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號