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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

js 深復(fù)制選擇哪種方法

js 深復(fù)制選擇哪種方法

郎朗坤 2019-12-17 13:08:15
js復(fù)制object類型時(shí),如果直接使用賦值,則會(huì)變成引用,如果想創(chuàng)建一個(gè)新對象,則要復(fù)制里面每一個(gè)元素查詢之后,發(fā)現(xiàn)兩種現(xiàn)成的方式:轉(zhuǎn)為json再轉(zhuǎn)回來newObject=JSON.parse(JSON.stringify(oldObject))使用Object.assign()newObject=Object.assign({},oldObject)兩種都可以達(dá)成,不知道哪一種比較好用?在執(zhí)行速度上面
查看完整描述

2 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

首先指出一點(diǎn)錯(cuò)誤,Object.assign({},oldObject)不是深拷貝,而是淺拷貝。

深拷貝方法很多,選一種適合的業(yè)務(wù)場景的就行了。1、使用JSON.parse(JSON.stringify(obj))。不能拷貝值為null,undefined,函數(shù)字段。2、使用MessageChannel+postMessage,通過消息隊(duì)列傳遞數(shù)據(jù),實(shí)現(xiàn)深拷貝。不能拷貝函數(shù)。3、手寫一個(gè)深拷貝,解決上述方案的問題。案例


查看完整回答
反對 回復(fù) 2019-12-18
?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

看著可以,其實(shí)這兩種都不行。1會(huì)把非JSON格式的數(shù)據(jù)(func,undefined等)丟失2除非循環(huán)的執(zhí)行,否則內(nèi)部的引用變量還是會(huì)被改變

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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