Heim >Web-Frontend >js-Tutorial >Können Sie in JavaScript ES6 eine Destrukturierung auf ein vorhandenes Objekt durchführen?
Können Sie in JavaScript ES6 ein vorhandenes Objekt destrukturieren?
Destrukturierung ist eine praktische Funktion, die in ES6 eingeführt wurde und eine bequeme Extraktion von Daten ermöglicht aus Objekten und Arrays. Es stellt sich jedoch häufig die Frage: Ist eine Destrukturierung auf einem vorhandenen Objekt möglich?
Stellen Sie sich das folgende Szenario vor: Sie haben zwei Objekte, foo und oof. Sie möchten die x- und y-Werte von foo nach oof übertragen. Während die Destrukturierung das ideale Werkzeug für diese Aufgabe zu sein scheint, sind Sie vielleicht neugierig, ob es eine Möglichkeit gibt, dies direkt mit der ES6-Destrukturierungssyntax zu erreichen.
Versuch einer direkten Übertragung:
Intuitiv könnten Sie daran denken, eine Syntax wie oof{x,y} = foo zu verwenden, aber leider funktioniert das nicht. Stattdessen erwartet JavaScript, dass auf der linken Seite des Zuweisungsoperators eine neue Variable deklariert wird.
Eine Umgehungslösung:
Um diese Einschränkung zu umgehen, können Sie Folgendes tun Greifen Sie auf eine etwas unkonventionelle, aber effektive Lösung zurück:
({x: oof.x, y: oof.y} = foo);
Diese Zeile liest die x- und y-Werte von foo und ordnet sie ihren jeweiligen Positionen in oof zu. Obwohl dieser Ansatz vielleicht nicht der eleganteste ist, erreicht er das gewünschte Ziel.
Alternative Optionen:
Für einen traditionelleren Ansatz ziehen Sie die folgenden Alternativen in Betracht:
oof.x = foo.x; oof.y = foo.y;
['x', 'y'].forEach(prop => oof[prop] = foo[prop]);
Diese Methoden sind möglicherweise einfacher und sorgen für eine bessere Lesbarkeit.
Zusammenfassung:
Die Destrukturierung eines vorhandenen Objekts wird in der ES6-Destrukturierungssyntax nicht direkt unterstützt. Sie können jedoch die angegebene Technik anwenden, um das gewünschte Ergebnis zu erzielen, oder sich für traditionelle Zuweisungsansätze entscheiden, wenn Klarheit Priorität hat. Ob es ({x: oof.x, y: oof.y} = foo);, oof.x = foo.x; oof.y = foo.y; oder eine andere Methode, die Wahl hängt von Ihren Vorlieben und Ihrem Kontext ab.
Das obige ist der detaillierte Inhalt vonKönnen Sie in JavaScript ES6 eine Destrukturierung auf ein vorhandenes Objekt durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!