Wie implementiere ich eine private Methode in einer ES6-Klasse mit Traceur [duplicate]

Diese Frage hat hier bereits eine Antwort:

Private-Eigenschaften in JavaScript ES6-Klassen 35 answers

Ich nutze Traceur Compiler, um jetzt die Vorteile von ES6 zu nutzen.

Ich möchte dieses Zeug von ES5 implementieren:

function Animal() {
    var self = this,
        sayHi;

    sayHi  = function() {
        self.hi();
    };

    this.hi = function() {/* ... */}
}

erzeit unterstützt traceur nichtprivate undpublic Schlüsselwörter aus Harmonie). Und die ES6-Klassensyntax erlaubt es nicht, einfaches @ zu verwendevar (oderlet) Anweisungen im Klassenhauptteil.

Die einzige Möglichkeit, die ich finde, besteht darin, vor der Klassendeklaration Privates zu simulieren. Etwas wie

var sayHi = function() {
    // ... do stuff
};

class Animal {
...

Es ist besser als nichts, aber wie erwartet kann man nicht richtig übergebenthis zur privaten Methode ohneapply -ing oderbind -es jedes Mal.

So gibt es eine Möglichkeit, private Daten in der ES6-Klasse zu verwenden, die mit dem Traceur-Compiler kompatibel sind?

Antworten auf die Frage(18)

Ihre Antwort auf die Frage