文章詳情頁
javascript - Object.assign() 深拷貝和淺拷貝的問題
瀏覽:136日期:2023-05-05 17:16:33
問題描述
如上圖,據描述,Object.assign()為淺拷貝, 為什么改變屬性a不是指向同一個引用,而b.c指向了同一個引用?
問題解答
回答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}
深拷貝一直用這個方法, Object.assgin 只能深拷貝第一層, 深層的還是淺拷貝, 記住這個就行了
回答2:let obj3 = Object.assign({},obj1,{b:Object.assign({},obj1.b)});let obj4 = JSON.parse(JSON.stringify(obj1));回答3:
淺拷貝:如果屬性元素為復雜雜數據類型時,內層元素拷貝引用;slice, concat, jQury的$.extend({},obj)都是淺拷貝;點擊這里了解詳情
標簽:
JavaScript
相關文章:
1. bootstrp是col-md-12列的,只有col-md-10有內容,可以讓沒有內容的不占據位置嗎;2. wordpress里,這樣的目錄列表是屬于小工具還是啥?3. 常量在外面不加引號會報錯。4. mysql federated引擎無法開啟5. 百度地圖 - Android app中準備接入地圖sdk,百度VS高德哪個好一點?6. 我的怎么不顯示啊,話說有沒有QQ群什么的7. sublime text3安裝package control失敗8. python 3.4 error: Microsoft Visual C++ 10.0 is required9. android - Genymotion 微信閃退 not find plugin.location_google.GoogleProxyUI10. MySQL 使用 group by 之后然后 IFNULL(COUNT(*),0) 為什么還是會獲得 null
排行榜
