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!