Hier fängt ein neues Kapitel an 563
Extrastarke Objekte
13
Prototypen verwenden
Zu lernen, wie man Objekte erstellt, war erst der Anfang.
Jetzt ist es Zeit, Ihren Objekten ein paar Muskeln wachsen zu lassen. Wir brau-
chen neue Möglichkeiten, Beziehungen zwischen den Objekten herzustellen und
Code zwischen ihnen auszutauschen. Und wir benötigen die Fähigkeit, beste-
hende Objekte zu erweitern und aufzuwerten. Anders gesagt: Wir brauchen mehr
Werkzeuge. In diesem Kapitel werden Sie sehen, dass JavaScript ein sehr mäch-
tiges Objektmodell besitzt, aber auch, dass es sich von den üblichen objektorien-
tierten Programmiersprachen unterscheidet. Anstelle des typischen klassenbasier-
ten Objektmodells verwendet JavaScript ein mächtigeres Prototypenmodell, bei
dem die Objekte voneinander erben oder das Verhalten anderer Objekte erweitern
können. Wofür das gut sein soll, werden Sie gleich sehen. Auf geht's …
564 Kapitel 13
Über Objekte und Vererbung reden
Wenn Sie Java, C++ oder eine andere klassische objektorientierte
Sprache gewohnt sind, sollten wir uns kurz einmal unterhalten.
Und wenn nicht … was, Sie haben einen Termin? Vergessen Sie's, nehmen Sie lieber
Platz und kommen Sie mit auf eine kleine Spritztour – vielleicht lernen Sie ja doch
noch was.
Um es klar zu sagen: JavaScript besitzt kein klassisches objektorientiertes Modell, in
dem Sie Objekte aus Klassen erzeugen. Eigentlich besitzt JavaScript überhaupt keine Klassen.
In JavaScript erben Objekte Verhalten von anderen Objekten. Das nennen wir prototypbasierte
Vererbung.
Leute, die in klassischer objektorientierter Programmierung trainiert sind, machen
schnell ein langes Gesicht (oder ein verwirrtes), wenn sie davon hören. Eines sollten Sie
aber wissen: Prototypbasierte Sprachen sind allgemeiner als solche mit einem klassisch
objektorientierten System. Sie sind flexibler, effizienter und ausdrucksstärker. So aus-
drucksstark, dass Sie, wenn Sie wollten, sogar eine klassische Vererbung in JavaScript
implementieren könnten.
Wenn Sie also in der Kunst der objektorientierten Programmierung geschult sind, lehnen
Sie sich zurück, entspannen Sie sich, öffnen Sie Ihren Verstand und machen Sie sich
bereit für etwas, das ein bisschen anders ist. Und sollten Sie keine Ahnung haben, was wir
mit »klassisch objektorientierter Programmierung« meinen, ist das auch nicht schlimm. Es
bedeutet nur, dass Sie ganz frisch anfangen, was oft eine gute Sache ist.
Tut uns leid. Zunächst müssen Sie
den ganzen objektorientierten
Vererbungskram, den Sie von Java
und C++ kennen, wieder verlernen.
Und wenn Sie die klassische
Vererbung noch nicht kennen,
haben Sie Glück gehabt, denn
dann müssen Sie nichts verlernen!
Das kann sich in
Zukunft ändern: Die
nächste Version von
JavaScript enthält
möglicherweise auch
Klassen. Die letzten
Neuigkeiten hierzu
finden Sie unter
wickedlysmart.com/hfjs.
Das überlassen
wir dem Leser
als Übung.

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.