當我們需要將一個物件複製到另一個物件時,我們一般會使用這樣的方式:
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 的深層副本,具有兩個不同的記憶體位址。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3