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
Barbara StreisandOriginal
2024-11-15 12:46:02556Durchsuche

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(){

    }

});

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;
    }
}

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!

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