Heim  >  Artikel  >  Web-Frontend  >  Wie erstelle ich Objekte dynamisch in JavaScript ES6 mithilfe von Klassenobjekten?

Wie erstelle ich Objekte dynamisch in JavaScript ES6 mithilfe von Klassenobjekten?

Barbara Streisand
Barbara StreisandOriginal
2024-11-15 19:25:02120Durchsuche

How to Create Objects Dynamically in JavaScript ES6 Using Class Objects?

Dynamisches Erstellen von Objekten in JavaScript ES6

Bei der Verwendung eines traditionellen Ansatzes können Schwierigkeiten beim Konstruieren von Objekten aus Klassennamen mit ES6 auftreten. Ziel dieses Artikels ist es, dieses Problem zu beheben und eine effektive Methode zum dynamischen Erstellen von Objekten mithilfe der ES6-Syntax bereitzustellen.

Der vorherige Codeausschnitt versucht, eine Factory zu verwenden, um Objekte basierend auf ihren Klassennamen zu erstellen. Aufgrund der Referenzierung von Klassen über das globale Objekt „window“ ist jedoch ein Fehler aufgetreten.

Um dieses Problem zu beheben, wird empfohlen, die Klassenobjekte selbst und nicht ihre Namen im „specColumn“-Objekt der Factory zu speichern. Dadurch wird sichergestellt, dass auf die Klassen zugegriffen werden kann, ohne dass man sich darauf verlassen muss, dass sie global verfügbar sind.

Darüber hinaus kann die Konvertierung der Factory in ein Objekt statt in eine Klasse angesichts ihres Singleton-ähnlichen Verwendungsszenarios angemessener sein. Hier ist der aktualisierte Code:

export class Column {}
export class Sequence {}
export class Checkbox {}

export const columnFactory = {
    specColumn: {
        __default: Column,    // <-- Class object
        __sequence: Sequence, // <-- Class object
        __checkbox: Checkbox  // <-- Class object
    },
    create(name, ...args) {
        let cls = this.specColumn[name] || this.specColumn.__default;
        return new cls(...args);
    }
};

Durch die Implementierung dieser Änderungen wird es möglich, Objekte dynamisch mithilfe der ES6-Syntax zu erstellen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich Objekte dynamisch in JavaScript ES6 mithilfe von Klassenobjekten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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