Java Reference
In-Depth Information
13.4.2■Vererbung mit Prototyping simulieren
Sie haben in JavaScript wie gesagt echte Vererbung nicht zur Verfügung. In Java gibt es
beispielsweise ein Schlüsselwort extends , um darüber die Superklasse von einer Klasse bei
deren Deklaration explizit anzugeben. Das wird in JavaScript derzeit nicht unterstützt,
obwohl es bereits reserviert ist und mit JavaScript 2.0 richtig eingeführt werden soll (siehe
Abschnitt 1.6). Aber wir können mittels der Eigenschaten constructor und prototype
eines jeden Objekts eine Art Vererbung simulieren. Betrachten wir zuerst folgendes Bei-
spiel, in dem von einer „Superklasse“ Eigenschaten an eine „Subklasse“ weitergereicht
werden sollen (kap13_9.html):
Listing 13.22■ Die HTML-Datei
...
<script type="text/javascript" src="lib/js/kap13_9.js"></script>
</head>
<body>
<h1>Vererbung in JavaScript</h1><div id="antwort"></div>
</body>
</html>
Die Webseite enthält nichts Erwähnenswertes - die JavaScript-Datei kap13_9.js hingegen
schon:
Listing 13.23■ Simulation einer Vererbung in JavaScript
//Konstruktormethode Superklasse
function Person(name, vorname) {
this.name = name;
this.vorname = vorname;
}
//Konstruktormethode Subklasse
function Mitarbeiter(name, vorname, pid) {
this.constructor(name, vorname);
this.pid = pid;
}
Mitarbeiter.prototype = new Person();
var pfoertner = new Mitarbeiter("Feuerstein", "Fred", "007");
function init() {
document.getElementById("antwort").innerHTML = pfoertner.vorname + " "
+ pfoertner.name + " - Kennung: " + pfoertner.pid + "<br />"
+ "Ist 'vorname' eine eigene Eigenschaft von dem Objekt? "
+ pfoertner.hasOwnProperty("vorname");
}
window.onload = init;
Zuerst sehen Sie eine Funktion Person(name, vorname) , die als Konstruktormethode für
eine „Superklasse“ dienen soll. Die Methode macht nicht mehr als, dass generierten Ins-
tanzvariablen eines daraus erzeugten Objekts die Werte der Übergabeparameter zugewie-
sen werden. In den folgenden Zeilen inden Sie eine weitere Funktion Mitarbeiter(name,
vorname, pid) , die als Konstruktormethode für die „Subklasse“ geplant ist und die von
der  Superklasse erben soll. Beachten Sie, dass die ersten beiden Parameter denen der
Funktion Person() entsprechen. Aus dem dritten Parameter dieser Funktion wird eine
neue Eigenschat geschafen. Die ersten beiden Parameter der Funktion werden aber per
 
Search WWH ::




Custom Search