Heim  >  Artikel  >  Web-Frontend  >  Flache vs. tiefe Kopie von Objekten in JavaScript

Flache vs. tiefe Kopie von Objekten in JavaScript

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-04 22:25:02471Durchsuche

Shallow vs Deep Copy of Objects in JavaScript

Wenn wir ein Objekt auf ein anderes Objekt kopieren müssen, verwenden wir im Allgemeinen so etwas:


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


Dies funktioniert jedoch nur zum Kopieren der flachen Eigenschaften des Objekts. Wenn wir einen Fall wie den folgenden Code haben, ändert sich das Szenario:


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


Der Eigenschaftsbenutzer wird nicht kopiert; es wird weiterhin mit mainObject verknüpft sein. Wenn wir also die Benutzereigenschaft ändern, wirkt sich dies auch auf mainObject aus. Um dieses Problem zu lösen, können wir Folgendes tun:


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


Jetzt haben wir eine tiefe Kopie von mainObject mit zwei unterschiedlichen Speicheradressen.

Das obige ist der detaillierte Inhalt vonFlache vs. tiefe Kopie von Objekten in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn