Felix Riesterer: Nachfrage zu prototypischen Manipulationen

Beitrag lesen

Lieber Orlok,

Du meinst, für ein älteres Projekt?

ja, sorry. Ist mir beim Korrekturlesen durchgerutscht.

class MyArray extends Array {
  method ( ) {
    // do something
  }
}

const instance = new MyArray;

console.log(Array.isArray(instance)); // true

AHA!!! Das kannte ich bisher nur von PHP und C#. Ist das jetzt ECMAScript 6? Bisher dachte ich, dass man in JavaScript keine Klassen definieren kann, dass aber class ein reserviertes Wort wäre. Mir leuchtet das Code-Beispiel sofort ein, zeigt es doch eine ganz klassische Vererbung von Klassen.

Wenn man nun in JavaScript doch Klassen erstellt und erweitern kann, dann erübrigt sich meine Frage komplett, denn sie basiert auf der Annahme, dass man in JavaScript eben keine Klassen hat.

class MyArray extends Array {
  constructor ( ) {
    super(...arguments);
    console.log(this.length);
  }
  method ( ) {
    // do something
  }
}

const array = new MyArray(2, 4, 8); // 3

Optional kann innerhalb der Klasse die Pseudomethode constructor notiert werden

Mensch, sogar die Methode __construct in PHP findet sich hier wieder!

Liebe Grüße,

Felix Riesterer.