Java Reference
In-Depth Information
HInTErGrunDInFOrMATIOn: Für Leser mit Erfahrung in der OOP: die
gerade beschriebene Vorgehensweise entspricht der Erweiterung der Instanz-
elemente.
13.3■Was ist Prototyping?
Sie haben gerade gesehen, wie einfach Sie in JavaScript bestehende Objekte individuell
erweitern können. Aber geht das auch mit allen Objekten eines Typs in einem Skript? Ja -
über die Erweiterung der Objektdeklaration (also im weiteren Sinn der Klasse) mittels Pro-
totyping . Wenn Sie in JavaScript mit Prototypen arbeiten, bedeutet das, dass Kopien beste-
hender Objekte erzeugt werden. Diese können anschließend manipuliert werden. Diese
Manipulation bedeutet wiederum, dass eine Klasse beziehungsweise alle darauf aufbauen-
den Objekte mit neuen Eigenschaten und/oder Methoden erweitert oder verändert werden.
Eine bereits fertige Klasse - bzw. genauer die darauf basierenden Objekte - kann um even-
tuell fehlende Funktionalität erweitert werden. Besonders interessant ist Prototyping, wenn
die Erweiterung auf eine Objektdeklaration angewendet wird, falls bereits ein Objekt exis-
tiert. Für ein existierendes Objekt eines Typs bedeutet Prototyping, dass es erweitert wer-
den kann, nachdem (!) es bereits erzeugt wurde. Der Grund ist die schon angedeutete
Struktur eines Objekts in JavaScript. Ein Objekt in JavaScript verhält sich wie gesagt wie
eine Hashtabelle, bei der der Name eines Eintrags immer eine Zeichenkette ist und die ein-
fach durch Hinzufügen eines weiteren Eintrags erweitert werden kann. Und diese Struktur
wirkt sich auf alle Objekte eines Typs aus - egal wann sie erzeugt werden, denn auch ein
Prototyp selbst hat diese Hashstruktur.
Wir haben bereits erwähnt, dass in JavaScript jede Objektdeklaration eine Eigenschat
prototype besitzt. Die allgemeine Syntax dazu ist die folgende:
Listing 13.3■ Erweiterung per Prototyping
[Objekttyp].prototype.[Eigenschaft/Methode] = [Wert];
Sobald diese Aktion durchgeführt wurde, besitzen alle zuküntig erzeugten, aber auch alle
vorher bereits erzeugten Objekte die neue Eigenschat beziehungsweise Methode. Und weil
es immer wieder gerne falsch gemacht wird - wenden Sie Ihre Aufmerksamkeit noch ein-
mal auf den Adressaten der Botschat - es ist beim Einsatz von prototype der Objekttyp ,
nicht die Instanz, wie im vorherigen Abschnitt! Des Weiteren ist zu beachten, dass nach der
prototype -Anweisung erzeugte Objekte für die zugefügte Eigenschat immer den über
prototype angegebenen Vorgabewert besitzen, solange dieser nicht explizit mit einer Zu -
weisung verändert wurde.
HInWEIS: Beim Prototyping zeigen einige Browser teils recht tückische Verhal-
tensweisen. Insbesondere dann, wenn das Prototyping in externe Dateien aus-
gelagert wird und bei einigen Standardklassen von JavaScript angewendet wird.
Search WWH ::




Custom Search