2016-03-21 7 views
0

I Membervariablen in ES6 gesehen habe wie erklärt dieseErklärung Membervariablen in ES6 Klassen

export class MyClass 
{ 
    x = null; 

    constructor() { 
     this.x = 1; 
    } 

    write() { 
     console.log(this.x); 
    } 
} 

und babel scheint es gut transpile.

Ist dies eine gültige Möglichkeit, Membervariablen zu deklarieren?

+1

Es gibt keine "Member-Variablen" in JS. Und was Sie gesehen haben, ist nicht ES6, sondern ein experimenteller Funktionsvorschlag für ES8. Benutze es nicht. – Bergi

Antwort

2

Dies ist Teil des Vorschlags für ES Class Fields & Static Properties. Es wird von Babeljs unterstützt, mit dieser plugin. Es ist ein babel Stage-1-Plugin, also wenn Sie stage-1 oder stage-0 verwenden, wird dies unterstützt.

+0

danke! Ich wusste nichts davon –

2

Ich glaube nicht, dass das richtig ist. Zumindest erwähnt die MDN keine solche Syntax.

Für Ihr Beispiel, lassen Sie uns es Zeile für Zeile durcharbeiten.

class MyClass { // Class declaration, all good here 
    x = null; // I assume you're telling javascript that the variable x exists? 

    constructor() { 
     this.x = 1; // You do that here just fine. 
    } 

    write() { 
     console.log(this.x); // And here we use the variable, after the constructor ran 
    } 
} 

Ich sehe keinen Wert bei der Deklaration der Elementvariablen separat. Sie erstellen es im Konstruktor. Das sollte alles sein, was Sie brauchen

Verwandte Themen