Heim >Web-Frontend >js-Tutorial >Wie erstelle ich eine echte tiefe Kopie eines JavaScript-Objekts?
Das Klonen von JavaScript-Objekten ist eine entscheidende Aufgabe in verschiedenen Programmierszenarien. Aufgrund der Komplexität des Objektsystems von JavaScript kann es jedoch eine Herausforderung sein, eine Kopie eines Objekts zu erstellen, die von am Original vorgenommenen Änderungen unberührt bleibt.
Native Objektzuweisung von JavaScript Der Operator (z. B. x = y) erstellt nur einen Verweis auf das Originalobjekt. Änderungen an x oder y wirken sich auf beide Objekte aus. Darüber hinaus kann das Kopieren von Objekten, die von integrierten JavaScript-Objekten abgeleitet sind (z. B. Array, Datum), zu unerwünschten Eigenschaften führen.
Um eine tiefe Kopie eines JavaScript-Objekts zu erstellen, berücksichtigen Sie Folgendes Folgende umfassende Lösung:
function clone(obj) { if (null == obj || "object" != typeof obj) return obj; var copy = obj.constructor(); for (var attr in obj) { if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]); } return copy; }
Diese Funktion verwendet einen rekursiven Ansatz, um die Eigenschaften des Objekts zu durchlaufen und ein neues Objekt mit separaten Instanzen zu erstellen für jeden Immobilienwert. Es behandelt die Fälle von null, undefiniert und verschiedenen integrierten Objekttypen und schließt nicht aufzählbare und versteckte Eigenschaften aus.
Während die Lösung die meisten Szenarien abdeckt, geht sie davon aus dass die Objektdaten eine Baumstruktur bilden, d. h. es gibt keine Zirkelverweise innerhalb des Objekts. Außerdem sind Kenntnisse über den Konstruktor des Objekts erforderlich, um das geklonte Objekt ordnungsgemäß zu instanziieren.
In modernen Browsern bietet der strukturierte Klonstandard eine robustere und effizientere Möglichkeit Erstellen Sie tiefe Kopien von Objekten. Die Funktion „structuredClone()“ klont das Objekt in seiner Gesamtheit und behält dabei verborgene Eigenschaften und Zirkelverweise bei.
const clone = structuredClone(object);
Denken Sie daran, dass das Klonen von Objekten eine komplexe Aufgabe sein kann, und berücksichtigen Sie die Einschränkungen jedes Ansatzes basierend auf den spezifischen Anforderungen Ihrer Bewerbung.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine echte tiefe Kopie eines JavaScript-Objekts?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!