Constuctor Functions sind eine Technik, um Objekte von einer Funktion zu erstellen. Constructor Functions sollen traditionelle Klassen simulieren.
- Neues
{} wird erstellt
- Funktion wird aufgerufen,
this = {}
{} wird mit dem Prototype verknüpft
- Funktion gibt neues Objekt automatisch zurück
Man sollte keine Methoden bei Constructor Functions definieren!
instanceof
Mit instanceof können wir überprüfen ob ein Objekt eine Instanz einer bestimmten Constructor Function ist.
Prototype
Wir können uns nun den Prototype zu nutze machen, indem wir darin die Methoden und gemeinsame Properties für unsere Constructor Function definieren.
__proto__
Mit diesem Property können wir nachschauen, welchen Prototype eine Instanz hat.
Statische Methoden
Statische Methoden sind nicht an ein Objekt geknüpft sondern an den Constructor. Das heisst wir können die Methode nur auf dem Constructor aufrufen, nicht aber auf dem Objekt.
Vererbung
Wir setzen den Protoype von Student also auf den Prototype von Person. So können wir alle Methoden vom Person Prototype ebenfalls nutzen.
Person {firstname: 'Matilda', lastname: 'Johnson', birthYear: 2009}
Person {firstname: 'Jay', lastname: 'Smith', birthYear: 2010}