」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > JavaScript 中物件的淺拷貝與深拷貝

JavaScript 中物件的淺拷貝與深拷貝

發佈於2024-11-08
瀏覽:525

Shallow vs Deep Copy of Objects in JavaScript

當我們需要將一個物件複製到另一個物件時,我們一般會使用這樣的方式:


const mainObject = { id: 1 };
const secondaryObject = { ...mainObject };


但這僅適用於複製物件的淺層屬性。如果我們有類似以下程式碼的情況,則場景會改變:


const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } };
const secondaryObject = { ...mainObject };


屬性使用者不會被複製;它仍然與 mainObject 相關。因此,如果我們更改 user 屬性,它也會影響 mainObject。為了解決這個問題,我們可以執行以下操作:


const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } };
const deepCopy = JSON.parse(JSON.stringify(mainObject ));


現在,我們有了 mainObject 的深層副本,具有兩個不同的記憶體位址。

版本聲明 本文轉載於:https://dev.to/claudioguedes/shallow-vs-deep-copy-of-objects-in-javascript-3d2o?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3