JavaScript (Objekte und Objektorientierung)
Objekte und Objektorientierung
In JavaScript begegnen uns an vielen Stellen Objekte, an denen wir es gar nicht erwarten würden. Beispielsweise ist das document-Element eigentlich ein Objekt, das dann Methoden wie write enthält. Zur Erklärung: document ist beispielsweise das Objekt für den Inhalt einer Webseite, window das Objekt für das Browserfenster. Diese Objekt besitzt die Eigenschaften, das sind Werte, die wir uns wie Variablen vorstellen können. Außerdem hat es Methoden - sie arbeiten ähnlich wie Funktionen. In JavaScript wird immer zuerst das Objekt geschrieben, dann mit einem Punkt abgetrennt die Eigenschaft oder Methode.
Objekt.Eigenschaft;
liest den Wert einer Eigenschaft aus. Um ihn zu setzen, verwenden wir das Gleichheitszeichen:
Objekt.Eigenschaft = "Neuer Wert";
Eine Methode erkennen wir an den runden Klammern. Um eine Methode zu verwenden, rufen wir sie auf. Optional können wir in runden Klammern wie bei Funktionen Parameter übergeben. Mehrere Parameter werden durch Kommata getrennt:
Objekt.Methode(Parameter1, Parameter2);
Eine Methode des window-Objekts ist beispielsweise alert() zur Ausgabe eines Warnfensters. Hier können wir allerdings das Objekt auch weglassen, da die Browser es automatisch ergänzen.
Ein Objekt gibt es immer nur einmal, es ist spezifisch. D.h., document oder window meint immer nur eine bestimmte HTML-Seite oder ein bestimmtes Browserfenster. Allerdings wurde einmal übergreifend definiert, welche Eigenschaften und Methoden das Objekt haben kann. Dies geschieht in einer so genannten Klasse. Bei document und window hat das der Browser schon für uns übernommen. Wollen wir aber eigene Objekte erzeugen, müssen wir selbst eine Klasse anlegen. Dies funktioniert in JavaScript mit dem bereits bekannten Schlüsselwort function. Eigenschaften werden mit dem Schlüsselwort this an die aktuelle Klasse gebunden, Methoden werden außerhalb der Klasse als eigenständige Funktionen geschrieben und innerhalb der Klasse nur einer Eigenschaft zugewiesen.
function Klassenname() {
this.Eigenschaft = "Wert";
this.Methode = Funktion;
}
function Funktion(Parameter1) {
Anweisungsblock;
}
Um ein Objekt dieser Klasse zu erstellen, verwenden wir das Schlüsselwort new und speichern das Objekt in einer Variable:
var Objekt = new Klassenname();
Dann können wir alle Eigenschaften auslesen oder setzen und alle Methoden aufrufen:
Objekt.Eigenschaft = "Neuer Wert";
Objekt.Methode(Wert_Parameter1);
Nun ein Beispiel, was eine einfache Klasse mit einer mathematischen Methode zeigt. Nach diesem Muster können wir uns ganze Bibliotheken an Hilfsmethoden zusammenstellen.
function MathKlasse() {
this.faktor = 2;
this.multi = mutliplizieren;
}
function mulitplizieren(x) {
alert(this.faktor * x);
}
var MathObjekt = new MathKlasse();
MathObjekt.multi(10);