Java Reference
In-Depth Information
Besonders mit der Erweiterung der Klasse Image habe ich in älteren Versionen
von Firefox bzw. Mozilla-Browsern und Opera in einigen Versionen bei der Er -
weiterung seltsame Erfahrungen gemacht. Rein durch die Position, wo ich das
Prototyping durchgeführt habe, hat die Erweiterung teils funktioniert, teils nicht.
Teils hat die Erweiterung der Klasse Image aber auch gar nicht funktioniert.
Die Klasse wird in diesen älteren Browsern in gewisser Weise „inal“ gemacht,
um einmal die Java-Bezeichnung zu verwenden, und damit gegen Erweiterungen
gesperrt. Ich kann diese Probleme nicht in allen Versionen der unterschied-
lichen Browser „garantieren“ und insbesondere in neuen Versionen und anderen
Browsern wie Chrome, Safari oder Internet Explorer funktioniert die Erweiterung
von Image , aber es gab eindeutig diese Probleme. Und es wird noch tückischer,
denn die gleichen Erweiterungen haben beispielsweise mit der Klasse Object
keinerlei Probleme gemacht und da die Erweiterungen von da „vererbt“ werden,
stehen sie auch in Objekten vom Typ Image zur Verfügung. Ebenso sind Prob-
leme bei der Erweiterung von Math bekannt. Wenn Sie Prototyping (besonders
von Standardklassen) betreiben, müssen Sie auf jeden Fall in allen relevanten
Browsern testen - mehr noch als sonst. Ich würde allgemein Prototyping nur auf
eigene Objektdeklarationen anwenden.
13.3.1■Prototyping von Object
Wir wollen in einem ersten Beispiel zum Prototyping nun auf Basis einer Standardklasse
von JavaScript einen Prototypen schafen. Dabei wollen wir die Klasse Object (die oberste
Klasse der gesamten Objekthierarchie in JavaScript) zuerst um die Eigenschaten copyright
und info sowie eine Methode erweitern, allerdings ein Objekt vom Typ Image erzeugen und
darüber die Eigenschaten verwenden. Das gesamte Verfahren zur Erweiterung der Klasse
geht etwa so (kap13_2.js):
Listing 13.4■ Erweitern der Klasse Object
Object.prototype.copyright = "Ralph";
Object.prototype.info = "";
Object.prototype.getDatum= function(dat) {
return "Datum: "+ dat;
};
var b1 = new Image();
b1.src = "images/b1.png";
b1.info = "Gleitschirmliegen in Neu-Anspach";
Zuerst wird die Standardeigenschat prototype der Klasse Object verwendet und darüber
die Eigenschat copyright deklariert und gleich ein Wert zugewiesen. Danach erweitern
wir die Klasse um die Eigenschat info . Allerdings wird nur ein Leerstring als Wert zuge-
wiesen. Selbstverständlich können Sie vollkommen analog der Erweiterung eines einzelnen
Objekts auch eine Methode der Klasse hinzufügen. In den folgenden Zeilen heten wir eine
anonyme Funktion mittels prototype an die Klasse Object . Diese steht danach in allen
Instanzen der Klasse oder einer Subklasse über die Methode getDatum() zur Verfügung.
Search WWH ::




Custom Search