Hauptmenü

Untermenü

OOP mit JavaScript - Prototypen

1. Vererbung mal anders

Da JavaScript keine Klassen sondern nur Konstruktorfunktionen kennt, läuft das mit der Vererbung auch ein wenig anders ab. Einfach ausgedrückt bedeutet es, dass man ein Objekt hat und dem dann Stück für Stück Eigenschaften und Methoden hinzufügt oder sie ändert. Dabei gibt es drei Möglichkeiten.

2. Funktionsweise

Jede Konstruktorfunktion wird automatisch mit einer prototype-Eigenschaft ausgestattet. Sie beinhaltet einen Verweis auf ein, wie soll ich sagen, virtuelles Objekt mit einer so genannten constructor-Eigenschaft, das dann auf den Konstruktor verweist. Und dieses Konstrukt ist dann der eigentliche Prototyp. Wenn man also ein Objekt aus einem Konstruktor erzeugt, so verweist die Referenz-/Instanzvariable nicht direkt auf ihn, sondern genau genommen auf dessen Prototype-Objekt.

Illustration

Prototype Illustration

Wird jetzt nun zum Beispiel von einer Instanz/Referenz aus eine Eigenschaft oder Methode per Prototyping hinzugefügt, so landet die nicht im Konstruktor sondern im Prototype-Objekt. Also so.

Prototype Detail

Das hier erklärte ist allerdings eher theoretischer Natur, da die Referenz/Instanz eh immer auf den Konstruktor zugreift, wie ihr an den beiden Bildern klar sehen könnt.

3. Und jetzt in einem verständlichen Deutsch

Stellt euch das in etwa so vor, wie man in vielen Industriezweigen ein Produkt entwickelt. Als Beispiel nehme ich mal etwas Martialisches. Einen Panzer! In der Rüstungsindustrie ist es ja gang und gäbe, ein Basismodell zu entwickeln und ausgehend von dem dann verschiedene Arten von Panzern zu bauen. So gab es zum Beispiel bei Y-Tours einen Pionier- und einen Brückenpanzer, die beide auf den Chassis des Leopard 1 basierten. Also geht man in etwa so vor.

Wie ich schon sagte, ist das Beispiel ziemlich martialisch. Aber hey, ich bin noch in einer Zeit groß geworden, wo sich keiner darüber aufregte, wenn man mit so was gespielt hat. Darum basieren so weit wie möglich auch alle folgenden Erläuterungen darauf. Wer damit ein ethisches Problem hat, soll sich bei Claudia der Weinerlichen ausheulen.

4. Zugriffsrechte

Hier gibt es (ausnahmsweise) mal eine ganz einfache Regel. Man hat nur Zugriff auf die öffentlichen Methoden und Eigenschaften des Prototyps. Alles was privat ist, bleibt verboten.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt