Umwandeln einfacher Objekte in Klasseninstanzen in JavaScript
Wenn Sie in JavaScript einfache Objekte von einem Server als JSON-Antworten empfangen, kann es vorkommen, dass müssen sie in typisierte Klasseninstanzen umwandeln. Dadurch können Sie auf klassenspezifische Methoden und Eigenschaften zugreifen.
Lösung:
Ein Ansatz besteht darin, einen Konstruktor zu erstellen, der jedes Objekt akzeptiert, das einer Instanz ähnelt, und es klont. Alternativ können Sie eine statische Methode implementieren, die Objekte in Instanzen umwandelt:
<code class="javascript">Person.fromJSON = function(obj) { // Custom code to create an instance from the object return ...; };</code>
Für Ihr spezifisches Szenario, in dem Sie einfache Objekte mit öffentlichen Eigenschaften haben, können Sie die folgende Methode verwenden:
<code class="javascript">var personInstance = new Person(); for (var prop in personLiteral) { personInstance[prop] = personLiteral[prop]; }</code>
Dadurch werden alle Eigenschaften des einfachen Objekts der neu erstellten Instanz zugewiesen. Ebenso können Sie Animal-Instanzen erstellen.
Hinweis:
Beispielcode:
<code class="javascript">var persons = JSON.parse(serverResponse); for (var i = 0; i < persons.length; i++) { persons[i] = Object.assign(new Person(), persons[i]); // Use Object.assign for browsers that support it for (var j = 0; j < persons[i].animals; j++) { persons[i].animals[j] = Object.assign(new Animal(), persons[i].animals[j]); } }</code>
Mit diesem Code können Sie klassenspezifische Methoden wie „persons[0].Animals[2].Run();.
verwendenDas obige ist der detaillierte Inhalt vonWie konvertiere ich einfache JSON-Objekte in Klasseninstanzen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!