Objekte in Klasseninstanzen in JavaScript umwandeln
In vielen Fällen müssen Entwickler einfache JavaScript-Objekte umwandeln, die normalerweise von einem Server empfangen werden Antwort in bestimmte Klasseninstanzen zur weiteren Verarbeitung. Diese Anforderung entsteht, wenn den vom Server empfangenen Objekten die notwendigen Methoden und Eigenschaften fehlen, die mit der Klasse verknüpft sind, die sie darstellen.
Voraussetzungen
Um Objekte in Klasseninstanzen umzuwandeln, müssen wir muss zunächst Folgendes verstehen:
Lösung
Eine robuste Lösung ist sicherzustellen dass jeder Konstruktor Objekte akzeptieren kann, die Instanzen ähneln (einschließlich tatsächlicher Instanzen), und diese entsprechend klonen kann. Dadurch wird sichergestellt, dass die Instanzerstellungslogik korrekt gehandhabt wird.
Ein alternativer und effizienterer Ansatz besteht darin, eine statische Methode innerhalb der Klasse zu erstellen, um Objekte in Instanzen umzuwandeln:
Person.fromJSON = function(obj) { // Custom code for creating instances of Person return …; };
Spezifisches Beispiel
Betrachten Sie das folgende vereinfachte Beispiel:
function Person() { this.personName = ""; this.animals = []; } function Animal(){ this.animalName = ""; this.run = function(meters){ ..... } }
Um die JSON-Antwort zu konvertieren, können wir den folgenden Ansatz verwenden:
var persons = JSON.parse(serverResponse); for (var i=0; i<persons.length; i++) { persons[i] = $.extend(new Person, persons[i]); for (var j=0; j<persons[i].animals; j++) { persons[i].animals[j] = $.extend(new Animal, persons[i].animals[j]); } }
Hinweis: Die bereitgestellte Ausführungsmethode sollte dem Animal.prototype-Objekt und nicht einzelnen Instanzen hinzugefügt werden.
Das obige ist der detaillierte Inhalt vonSo wandeln Sie Objekte in Klasseninstanzen in JavaScript um. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!