Java Reference
In-Depth Information
Es ist also derzeit schon nützlich, mit der Option zu arbeiten, wenn man die richtigen Test-
browser verwendet, aber vollständig umgesetzt ist ein striktes Verhalten noch nicht. So
kann etwa auch in Browsern, die die Option im Grunde unterstützen, immer noch eine
bereits mit var deklarierte Variable erneut mit var deklariert werden. Das sollte für eine
sichere und saubere Programmierung in Zukunt unterbunden werden und insbesondere in
Verbindung mit Datentypen wird so etwas kaum noch sinnvoll sein. Vor allem das Ändern
des Datentyps darf auf keinen Fall mehr möglich sein, wenn man echte Sicherheit haben
möchte.
13.6.2■Klassendeinitionen und mehr
Zwar kann man in gewisserweise auch jetzt schon in JavaScript Klassen deinieren, indem
man Konstruktormethoden geeignet aufbaut (das haben wir ja in dem Kapitel behandelt).
Nur sind das eben für OO-Puristen keine „echten“ Klassen im strengen Sinn. Mit JavaScript
2.0 wird erstmalig in JavaScript die Deinition von Klassen im klassischen Sinn möglich
sein. Die Syntax soll an dem Klassenformat von Sprachen wie C# oder Java orientiert sein,
für den entscheidenden Konstruktor aber keine wirklichen Änderungen bringen und schon
gar nicht erzwingen. Es wird also im Grunde nur ein Gerüst um den bisherigen Konstruktor
gelegt, bei dem das Schlüsselwort class dem Klassenbezeichner vorangestellt wird. Sie
sehen also als wichtigsten Part der neuen Syntax die bisherige Notation eines Konstruktors,
nur werden die bisher mehr oder weniger freiwilligen Verhaltensweisen im Umgang mit
solchen Funktionen in ein festes Konzept für die Verwendung eingezwängt, was der Sache
mehr Sicherheit und Konsistenz gibt. Nehmen wir einmal einen Konstruktor, den wir hier
in dem Kapitel deiniert haben:
Listing 13.29■ Ein Konstruktor
Function reden (was) {
return this.personalnummer + ": " + was;
};
function Person(personalnummer, rolle) {
this.personalnummer = personalnummer;
this.rolle = rolle;
this.reden = reden;
};
}
Eine Klasse sieht dann so aus, wenn wir gleich mit Datentypen arbeiten, die wir ja auch mit
JavaScript 2.0 bekommen sollen:
Listing 13.30■ Eine Klasse
class Person {
var personalnummer: Integer;
var rolle: String;
function reden (was: String):String {
return this.personalnummer + ": " + was;
};
function Person(personalnummer, rolle) {
this.personalnummer = personalnummer;
 
Search WWH ::




Custom Search