文章詳情頁
javascript - Object.assign() 深拷貝和淺拷貝的問題
瀏覽:105日期: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. html5 - 最近在自學react 求一個react表單提交的例子2. javascript - jq 上傳圖片成功后添加一個新的上傳框時出現問題3. 請問寫好python模塊以后,文檔怎么寫?4. 老師您好!我有一個問題、5. javascript - 原生JS和jQuety關于設置圖片輪播定時器問題6. python - 用ffmpeg采集視頻,用terminate沒法結束進程7. jquery清除input type為password?8. 我和老師的代碼對照了幾遍沒發現問題,但是瀏覽器打開就有問題了,求解9. 使用PHP和MySQL的UNIQUE如何像京東注冊那樣保證用戶名唯一?10. javascript - uc、qq、搜狗 以上三個手機瀏覽器判斷移動端的js代碼不執行
排行榜
