Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie wandelt man generische Objekte in JavaScript in typisierte Instanzen um?

DDD
Freigeben: 2024-10-18 12:05:28
Original
893 Leute haben es durchsucht

How to Cast Generic Objects to Typed Instances in JavaScript?

Umwandeln generischer Objekte in typisierte Instanzen in JavaScript

Problemstellung:

JSON-Antworten von Server enthalten häufig einfache Objekte, die Klasseninstanzen darstellen. Das Umwandeln dieser generischen Objekte in typisierte Instanzen ermöglicht die Verwendung ihrer Klassenmethoden und den Zugriff auf typisierte Daten.

Lösung:

Das Erstellen von Objektinstanzen erfordert den Aufruf ihrer Konstruktoren. Da JSON-Daten jedoch keine Konstruktorinformationen enthalten, ist ein anderer Ansatz erforderlich.

1. Iteratives Klonen:

Dieser Ansatz beinhaltet das Klonen der Eigenschaften der einfachen Objekte in neu erstellte Instanzen:

<code class="javascript">var personLiteral = ...; // JSON.parse("...");
var personInstance = new Person();
for (var prop in personLiteral)
    personInstance[prop] = personLiteral[prop];</code>
Nach dem Login kopieren

2. Mit Object.assign:

Object.assign kann verwendet werden, um dieselbe Aufgabe präziser zu erledigen:

<code class="javascript">var personInstance = Object.assign(new Person(), personLiteral);</code>
Nach dem Login kopieren

Für komplexere Objekte mit verschachtelten Strukturen iterieren Sie durch die Eigenschaften und Wenden Sie den gleichen Klonvorgang rekursiv an.

3. Klonen von benutzerdefinierten Konstruktoren:

Jeder Konstruktor kann erweitert werden, um einfache Objekte zu akzeptieren und sie zu klonen, wobei die erforderliche Logik verarbeitet wird:

<code class="javascript">Person.fromJSON = function(obj) {
    // custom code, as appropriate for Person instances
    // might invoke `new Person`
    return …;
};</code>
Nach dem Login kopieren

Beispiel:

Wenden Sie in Ihrem spezifischen Szenario den Klonvorgang sowohl auf die Personen- als auch auf die Tierobjekte an:

<code class="javascript">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]);
    }
}</code>
Nach dem Login kopieren

Denken Sie daran, dass Ausführungsmethoden dem Tierprototyp und nicht einzelnen Instanzen hinzugefügt werden sollten.

Das obige ist der detaillierte Inhalt vonWie wandelt man generische Objekte in JavaScript in typisierte Instanzen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!