210 Kapitel 5
Verhalten und Zustand
var fiat = {
make: "Fiat",
model: "500",
// weitere Eigenschaften hier, wir sparen einfach etwas Papier ...
started: false,
fuel: 0,
start: function() {
this.started = true;
},
stop: function() {
this.started = false;
},
drive: function() {
if (this.started) {
alert(this.make + " " + this.model + " macht wrumm wrumm!");
} else {
alert("Sie müssen erst den Motor starten.");
}
},
addFuel: function(amount) {
this.fuel = this.fuel + amount;
}
};
Wie Verhalten einen Zustand beeinflussen kann …
Objekte können Zustände und Verhalten haben. Anhand von Objekteigenschaften können wir be-
stimmte Zustände des Objekts, beispielsweise den Füllstand, die aktuelle Temperatur oder auch
den Song, der gerade im Radio läuft, festhalten. Mit Objektmethoden können wir das Objekt
mit Verhalten versehen. Das kann das Starten des Autos, das Aufdrehen der Heizung oder auch
das Überspringen eines Songs sein. Ist Ihnen aufgefallen, wie diese beiden Dinge interagieren?
Beispielsweise können wir ein Auto nicht starten, wenn kein Sprit im Tank ist. Außerdem sollte
sich die Treibstoffmenge beim Fahren verringern. Ungefähr so wie im richtigen Leben, oder?
Mit diesem Konzept wollen wir noch etwas mehr herumspielen, indem wir das Auto erst mal
auftanken und es dann mit ein wenig interessantem Verhalten versehen. Hierfür erweitern wir
das Objekt um die Eigenschaft fuel und eine neue Methode namens addFuel. Sie besitzt
den Parameter amount, über den wir die Treibstoffmenge in der Eigenschaft fuel verändern
können. Jetzt können Sie diese Eigenschaften in das fiat-Objekt einbauen:
Wir haben die neue Eigenschaft fuel
eingebaut, die die Treibstoffmenge für das
Auto enthält. Das Auto beginnt sein Leben
unbetankt.
Damit wir den Tank füllen können, erweitern wir das
Objekt außerdem um die Methode addFuel. Durch
die Angabe eines Werts für amount können wir beim
Methodenaufruf so viel Benzin einfüllen, wie wir wollen.
Bedenken Sie, dass fuel eine Objekt-
eigenschaft ist. Das heißt, hier
brauchen wir das Schlüsselwort this.
Dabei ist amount ein Funktionsparameter. Deshalb
brauchen wir für seine Benutzung kein this.
Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.