文章詳情頁
javascript - Object.assign() 深拷貝和淺拷貝的問題
瀏覽:133日期:2023-05-05 17:16:33
問題描述
如上圖,據(jù)描述,Object.assign()為淺拷貝, 為什么改變屬性a不是指向同一個(gè)引用,而b.c指向了同一個(gè)引用?
問題解答
回答1:var deepCopy = function(src) { var ret = {} for (var k in src) {ret[k] = typeof src[k] ===’object’ ? deepCopy(src[k]) : src[k] } return ret}
深拷貝一直用這個(gè)方法, Object.assgin 只能深拷貝第一層, 深層的還是淺拷貝, 記住這個(gè)就行了
回答2:let obj3 = Object.assign({},obj1,{b:Object.assign({},obj1.b)});let obj4 = JSON.parse(JSON.stringify(obj1));回答3:
淺拷貝:如果屬性元素為復(fù)雜雜數(shù)據(jù)類型時(shí),內(nèi)層元素拷貝引用;slice, concat, jQury的$.extend({},obj)都是淺拷貝;點(diǎn)擊這里了解詳情
標(biāo)簽:
JavaScript
相關(guān)文章:
1. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?2. java - spring boot 如何打包成asp.net core 那種獨(dú)立應(yīng)用?3. java - 在用戶不登錄的情況下,用戶如何添加保存到購物車?4. datetime - Python如何獲取當(dāng)前時(shí)間5. javascript - nginx反向代理靜態(tài)資源403錯(cuò)誤?6. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?7. 安全性測試 - nodejs中如何防m(xù)ySQL注入8. javascript - 關(guān)于apply()與call()的問題9. docker start -a dockername 老是卡住,什么情況?10. python - 調(diào)用api輸出頁面,會有標(biāo)簽出現(xiàn),請問如何清掉?
排行榜

熱門標(biāo)簽