181
Kapitel 8
Objekte in JavaScript
In diesem Kapitel:
Objektorientierte Entwicklung 182
Objekte erstellen 186
Arrays näher betrachtet 190
Von integrierten Objekten profitieren 196
Übungen 197
182
Kapitel 8: Objekte in JavaScript
Nachdem Sie dieses Kapitel gelesen haben, sind Sie in der Lage:
Objekte in JavaScript einschließlich Objekteigenschaften, Objektmethoden und Klassen zu verstehen
Objekte zu erstellen
Eigenschaften und Methoden für Objekte zu definieren
Arrays in JavaScript zu verstehen
verschiedene Array-Methoden zu verwenden
Objektorientierte Entwicklung
Falls die objektorientierten Konzepte neu für Sie sind oder Sie eine Auffrischung brauchen, lesen Sie weiter.
Sind Sie mit der objektorientierten Programmierung bereits vertraut, können Sie gleich zum Abschnitt
»Objekte erstellen« weitergehen.
Ein Programmierungsparadigma beschreibt eine Methodologie, mit der sich auftretende Probleme lösen
lassen. Es gibt mehr als 25 unterschiedliche Programmierungsparadigmen, von denen einige aber kaum in
realen Programmen zu finden sind. Vielleicht haben Sie auch schon von anderen gehört oder sie unbewusst
verwendet. Zu diesen Paradigmen gehören funktionale Programmierung, ereignisgesteuerte Programmie-
rung, komponentenorientierte Programmierung und strukturierte Programmierung.
Programmierungsparadigmen kommen und gehen. Die objektorientierte Programmierung hat sich aller-
dings seit vielen Jahren etabliert und scheint auch nicht so bald zu verschwinden. Dieser Abschnitt kann
Ihnen lediglich einen Überblick über dieses Thema vermitteln. Objektorientierte Techniken und die ent-
sprechende Terminologie müssen Ihnen aber geläufig sein, damit Sie auch mit den Elementen zurechtkom-
men, mit denen ein JavaScript-Programmierer normalerweise zu tun hat.
Objekte
Objekte sind Dinge. In der realen Welt – im Gegensatz zur virtuellen oder surrealen Welt der Computerpro-
grammierung – handelt es sich beispielsweise bei einem Ball, einem Schreibtisch und einem Auto um
Objekte. Ein Objekt ist etwas, das beschreibbare Eigenschaften besitzt, die man beeinflussen kann, und das
sich in bestimmter Weise verhält. Im objektorientierten Programmierungsparadigma ist ein Objekt eine
Kombination von Code und Daten, die in ähnlicher Art und Weise Eigenschaften und Verhalten zeigt.
Eigenschaften
Objekte besitzen Eigenschaften – die als ihre Attribute definiert werden. In der realen Welt hat zum Beispiel
ein Ball eine Farbeigenschaft (color) – vielleicht rot, weiß oder mehrfarbig. Er besitzt auch eine Größen-
eigenschaft (size) – er kann klein wie ein Baseball oder größer wie ein Basketball oder wie etwas vollkommen
anderes sein. Diese Eigenschaften lassen sich wie folgt darstellen:
ball.color
ball.size
Objektorientierte Entwicklung
183
Methoden
So wie Objekte über Eigenschaften verfügen, können sie auch Methoden besitzen. Methoden definieren die
Art und Weise, wie sich ein Objekt verhält. Zum Beispiel könnte eine Methode roll für einen Ball berechnen,
wie weit der Ball rollen wird. Theoretisch haben nicht alle Objekte Methoden und nicht alle Objekte besit-
zen Eigenschaften, doch haben in der Praxis die meisten Objekte wenigstens eine Methode oder eine Eigen-
schaft.
Wie Kapitel 7 erläutert hat, ist eine Methode lediglich eine Funktion, die zu einem Objekt gehört. Eine Metho-
dendefinition, die ein Funktionsliteral für die Methode roll verwendet, sieht beispielsweise wie folgt aus:
ball.roll = function() {
var distance = this.size * this.forceApplied;
}
Was ist this?
Das ball.roll-Beispiel hat etwas Neues verwendet – das Schlüsselwort this, das auf das Objekt verweist, zu
dem die aktuelle Funktion oder Eigenschaft gehört. Im Kontext von Objekten verweist das Schlüsselwort
this auf das aufrufende Objekt. Das Schlüsselwort this lässt sich verwenden, um Eigenschaften von Objek-
ten innerhalb eines Funktionsaufrufs festzulegen.
Das Schlüsselwort this kommt JavaScript-Entwicklern entgegen, die Webformulare auf Gültigkeit prüfen
möchten. Mehr zu diesem Thema erfahren Sie in Kapitel 14.
Klassen
In der objektorientierten Programmierung definieren Klassen Mengen von Objekten mit gemeinsamen
Eigenschaften und Methoden. Klassen vereinfachen das Erzeugen mehrerer Objekte des gleichen Typs.
Allerdings kennt ECMA-262 kein Konzept von Klassen in seiner Objektschnittstelle. Damit Sie von den
Vorzügen der klassenbasierten Programmierung profitieren können, müssen Sie ein Entwurfsmuster
verwenden, um Pseudoklassen zu erstellen.
Nehmen wir das Sternenbeispiel, das ich in vorherigen Kapiteln verwendet habe. Listing 8.1 (das Sie in der
Datei Listing8-1.txt finden) zeigt, was Sie für eine umfassende Webseite benötigen, die Informationen über
14 wichtige Sterne enthält.
var star = {};
star["Polaris"] = new Object;
star["Mizar"] = new Object;
star["Aldebaran"] = new Object;
star["Rigel"] = new Object;
star["Castor"] = new Object;
star["Albireo"] = new Object;
star["Acrux"] = new Object;
star["Gemma"] = new Object;
star["Procyon"] = new Object;
star["Sirius"] = new Object;

Get JavaScript - Schritt für Schritt 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.