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 answersIch 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?