Hallo Felix
const MyNumber = (() => { const next = (a) => a + 1; return class { constructor() { this.number = 0; } next() { return next(this.number); } }; })();
verstehe ich Deinen Code richtig?
Nein. Die Methode next innerhalb des Körpers der Klasse wird automatisch auf dem prototypischen Objekt des Konstruktors definiert, der durch die pseudomethode constructor repräsentiert wird. Das mit den Klassen ist ja im Wesentlichen nur syntaktischer Zucker.
Das Beispiel von Nick wäre also eher so zu übersetzen:
const MyNumber = (function ( ) {
const next = function (a) {
return a + 1;
}
const constructor = function ( ) {
this.number = 0;
}
constructor.prototype.next = function ( ) {
return next(this.number);
}
return constructor;
}( ));
Wobei die innerhalb der Klasse definierte Methode standardmäßig nicht abzählbar ist, im Gegensatz zu der durch einen Zuweisungsausdruck erstellten Methode in diesem Beispiel. Wenn man es hätte genau nehmen wollen, hätte man die Methode also explizit definieren müssen. Aber das nur nebenbei bemerkt.
Viele Grüße,
Orlok