Java Reference
In-Depth Information
Listing 13.12■
Der Eigenschat irma des ersten Objekts wird direkt über die Instanz ein neuer
Wert zugewiesen.
var obj1 = new Object();
Object.prototype.irma = "RJS EDV-KnowHow";
var obj2 = new Object();
obj1.irma="Autoren-net.de";
Das Beispiel ist analog dem Vorgänger aufgebaut. Nur wird in der vierten Zeile über eines
der Objekte (
obj1
) der Wert der Eigenschat
irma
geändert. Die nachfolgende Ausgabe
beweist, dass der Wert von
irma
in
obj2
dadurch jedoch nicht geändert wurde.
Bild 13.6■
Nur bei obj1 wurde der Wert von irma geändert.
Wenn wir jedoch über die Eigenschat
prototype
der Klasse den Wert von
irma
ändern, ist
er für alle Objekte geändert, wie wir davor gesehen haben. Tatsächlich haben wir in
JavaScript eine Art Zwittersituation zwischen Klassen- und Instanzelementen.
HInWEIS:
Objekte in JavaScript sind - ziemlich analog der normalen Vererbung -
mit den Objekten verknüpt, von denen sie abstammen. Diese Verkettung endet
im „Vererbungsbaum“ spätestens bei
Object.prototype
. Wenn eine Eigenschat
oder Methode über ein Objekt aufgerufen und dort nicht gefunden wird, werden
über diese interne Verbindung alle übergeordneten Objekte nach einer passenden
Eigenschat oder Methode durchsucht. Sollte die Suche bis zu
Object.prototype
erfolglos verlaufen sein, wird das Ergebnis
undeined
geliefert.
Um die Erstellung von Prototypen samt der „Simulation“ erweiterter OO-Techniken in
JavaScript nun richtig zu verstehen, müssen wir noch den Weg über die Erstellung eigener
Konstruktormethoden nehmen.
■
■
13.4■Erstellen von Konstruktormethoden
Sie können in JavaScript derzeit wie gesagt Klassen im strengen Sinn der OOP nicht hin-
schreiben. Aber im Sinn von Prototypen können Sie eigene Objektdeinitionen schreiben
und daraus dann Objekte erstellen. Damit können wir im Grunde auch eigene Klassen im
Sinn von Bauvorschriten für Objekte schreiben. Um in JavaScript nun ein Objekt nach
eigenen Vorstellungen anlegen zu können, sind efektiv zwei Schritte nötig.
1. Sie müssen eine eigene Objektdeklaration bzw. Konstruktormethode erstellen.
2. Mit Hilfe dieser Objektdeklaration wird dann wie bei vordeinierten Objektdeklarationen
eine konkrete Objektinstanz erstellt.
Search WWH ::
Custom Search