Heim >Web-Frontend >js-Tutorial >Wie werden Klassenvariablen in ES6 und höher implementiert?
Alternativen zu ES6-Klassenvariablen
In ES5 werden Klassen üblicherweise mithilfe von Frameworks mit einem Muster erstellt, das Klassenvariablen enthält. Allerdings gibt es in ES6 keinen integrierten Mechanismus zum Erstellen von Klassenvariablen.
Um dieses Problem anzugehen, wurden verschiedene Ansätze vorgeschlagen, aber keiner hat sich als vollständig zufriedenstellend erwiesen. Beispielsweise wurden die Erstellung eines ClassConfig-Handlers und die Übergabe eines separaten Parameterobjekts oder die Verwendung von WeakMaps in Betracht gezogen, weisen jedoch Einschränkungen auf.
Im Jahr 2018 wurde ein Vorschlag der Stufe 3 für Klassenvariablen eingeführt. Dieser Vorschlag ermöglicht die Verwendung der folgenden Syntax innerhalb von Klassendeklarationen/-ausdrücken:
varName = value
Diese Syntax definiert eine Variable innerhalb der Klasse. Allerdings befindet sich der Vorschlag noch in der Entwicklung und ist noch nicht finalisiert.
Laut ES-Wiki war die Entscheidung gegen die Aufnahme von Klassenvariablen in die ES6-Spezifikation eine bewusste Entscheidung. Klassendefinitionen sollten die Fähigkeiten einer Klasse und nicht ihrer Mitglieder deklarieren. In Klassendefinitionen angegebenen Eigenschaften werden Attribute zugewiesen, als ob sie in einem Objektliteral erscheinen würden.
Daher ist zum Definieren von Klassenvariablen der bevorzugte Ansatz die Verwendung des Konstruktors:
constructor(){ this.foo = bar }
Eine Alternative Ein Vorschlag für ES7 befindet sich in der Entwicklung und zielt darauf ab, prägnantere Instanzvariablen durch Klassendeklarationen und -ausdrücke zu ermöglichen. Dieser Vorschlag wird noch diskutiert und ist noch nicht finalisiert.
Das obige ist der detaillierte Inhalt vonWie werden Klassenvariablen in ES6 und höher implementiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!