Heim > Web-Frontend > js-Tutorial > Wie verwalten Sie Klassenvariablen in ES6-Klassen, wenn sie nicht nativ unterstützt werden?

Wie verwalten Sie Klassenvariablen in ES6-Klassen, wenn sie nicht nativ unterstützt werden?

Barbara Streisand
Freigeben: 2024-11-15 12:46:02
Original
581 Leute haben es durchsucht

How do you manage class variables in ES6 classes when they are not natively supported?

Alternativen zu Klassenvariablen in ES6

In ES5 verwendeten Entwickler häufig ein komfortables Muster zum Erstellen von Klassen und Klassenvariablen, wie im Folgenden gezeigt code:

// ES 5
FrameWork.Class({

    variable: 'string',
    variable2: true,

    init: function(){

    },

    addItem: function(){

    }

});
Nach dem Login kopieren

In ES6 beinhaltet das Erstellen von Klassen jedoch nicht die Option, Klassenvariablen zu haben, wie gezeigt unten:

// ES6
class MyClass {
    const MY_CONST = 'string'; // <-- this is not possible in ES6
    constructor(){
        this.MY_CONST;
    }
}
Nach dem Login kopieren

Das liegt daran, dass ES6-Klassen darauf beschränkt sind, Methoden zu enthalten. Es ist zwar möglich, this.myVar im Konstruktor festzulegen, es ist jedoch unerwünscht, den Konstruktor zu überladen, insbesondere bei großen Klassen.

Es wurden mehrere Ansätze in Betracht gezogen, um dieses Problem anzugehen, darunter:

  • Erstellen eines ClassConfig-Handlers: Übergeben Sie ein Parameterobjekt an den Handler, das separat von der Klasse deklariert wird. Der Handler würde dann eine Verbindung zur Klasse herstellen. Zu diesem Zweck könnten möglicherweise WeakMaps integriert werden.
  • Ein Vorschlag der Stufe 3: Dieser Vorschlag ermöglicht die Deklaration von Variablen innerhalb einer Klassendeklaration/eines Klassenausdrucks mithilfe der Syntax varName = value. Es wird erwartet, dass es in Zukunft veraltet sein wird.
  • Konstruktorvariablen festlegen: Obwohl es keine perfekte Lösung ist, kann constructionor(){ this.foo = bar } zum Festlegen von Instanzvariablen verwendet werden.
  • ES7-Eigenschaftsinitialisierer: Ein neuer Vorschlag für ES7 ermöglicht die Deklaration präziserer Instanzvariablen mithilfe von Klassendeklarationen und Ausdrücke.

Das obige ist der detaillierte Inhalt vonWie verwalten Sie Klassenvariablen in ES6-Klassen, wenn sie nicht nativ unterstützt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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