Java Reference
In-Depth Information
13.3.4■und doch nicht ganz ein Klassenelement
Nun scheinen wir durch die Erweiterung des Prototyps Klassenelemente bzw. statische
Elemente anzulegen. So scheint es zumindest vermutlich für erfahrene Java- oder C#-Pro-
grammierer auf den ersten Blick. Und gerade diese werden hier wieder durch JavaScript
getäuscht, zumindest ein bisschen. Denn es handelt sich nur um spezielle JavaScript-Vari-
anten der Klassenelemente bzw. statischen Elemente, die gewisse Besonderheiten besitzen
und damit nicht ganz dem üblichen Verständnis entsprechen. Oder genauer - die konkrete
Anwendung spielt wieder eine Rolle, ob es wirklich statische Elemente sind oder nicht.
Schauen wir uns das folgende Skript kap13_5.js an:
Listing 13.10■ Zwei Objekte vom Typ Object
var obj1 = new Object();
Object.prototype.irma = "RJS EDV-KnowHow";
var obj2 = new Object();
Zuerst wird ein Objekt vom Typ Object erzeugt, dann die Klasse Object per Prototyping
erweitert und danach erst ein zweites Objekt vom Typ Object erzeugt. Verwenden wir
beide Objekte (kap13_5.html):
Listing 13.11■ Verwenden der Objekte
...
<script type="text/javascript" src="lib/js/kap13_5.js"></script>
</head>
<body>
<h1>Ein Objekt durch Hinzufügen von Eigenschaften und Methoden erweitern</h1>
<script type="text/javascript">
document.write("<div class='tab1'>obj1.irma</div><div class='tab2'>"
+ obj1.irma + "</div><br />");
document.write("<div class='tab1'>obj2.irma</div><div class='tab2'>"
+ obj2.irma + "</div><br />");
</script>
</body>
</html>
Bild 13.5■ Die Eigenschat ist in allen Objekten des gleichen Typs vorhanden und hat den gleichen
Wert.
Sie sehen, dass der Zugrif sowohl über das erste als auch das zweite Objekt den gleichen
Wert der Eigenschat irma liefert, auch wenn das erste Objekt bereits vor der Erweiterung
der Klasse erzeugt wurde. Hätten wir nun echte statische Elemente, würde Folgendes gel-
ten: Wenn wir den Wert der Eigenschat irma über die Klasse oder aber auch eines der
Objekte ändern, wäre der Wert auch unmittelbar in allen anderen Objekten dieses Typs
geändert  - das typische Verhalten eines Klassenelements, sofern die Änderung über ein
Objekt in der Syntax einer Sprache erlaubt ist 1 . Betrachten Sie jedoch folgende Erweiterung
des Beispiels (kap13_6.js):
1 In Java ist das etwa möglich, während C# es beispielsweise unterbindet.
Search WWH ::




Custom Search