Heim > Web-Frontend > js-Tutorial > Hauptteil

So wandeln Sie Objekte in Klasseninstanzen in JavaScript um

Patricia Arquette
Freigeben: 2024-10-18 11:43:03
Original
234 Leute haben es durchsucht

How to Cast Objects to Class Instances in JavaScript

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:

  • In JavaScript erfordert das Erstellen einer Objektinstanz den Aufruf ihres Konstruktors.
  • Der Konstruktor akzeptiert bestimmte Argumente, die über einfache Eigenschaften hinausgehen können.
  • Nach dem Aufruf des Konstruktors müssen wir den erstellten Instanzen öffentliche Eigenschaften aus dem analysierten JSON-Objekt zuweisen.

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 …;
};
Nach dem Login kopieren

Spezifisches Beispiel

Betrachten Sie das folgende vereinfachte Beispiel:

function Person() {
    this.personName = "";
    this.animals = [];
}

function Animal(){
    this.animalName = "";
    this.run = function(meters){
        .....
    }
}
Nach dem Login kopieren

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]);
    }
}
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
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!