Die Arbeitsweise von JavaScript basiert auf OOP (objektorientierte Programmierung). Vereinfacht kann man den Aufbau so beschreiben:
Durch METHODEN veraendert man die EIGENSCHAFTEN von OBJEKTEN.




Das war's!

Was ist ein Objekt?

Ein Objekt besitzt bestimmte Eigenschaften und Methoden. Wobei Methoden nichts anderes sind als Funktionen, die diesem Objekt zugeordnet wurden. Von einem Objekt können mit dem Schlüsselwort new Vertreter (Instanzen) erzeugt werden.

Es muß also zunächst ein Objekt mit gewissen Eigenschaften definiert werden.
Ein Objekt könnte zum Beispiel folgendes sein:


Diese Definition des Objektschemas, auch Klasse genannt, sollte im HEAD-Teil des HTML-Dokuments stehen. Das Schlüsselwort this bezieht sich auf die aktuellen Eigenschaften eines Objekts, wenn es durch das Schlüsselwort new als Vertreter dieser Objektklasse innerhalb des BODY-Umgebung eines HTML-Dokuments erzeugt wird. Die aktuellen Eigenschaften werden hierbei den Angaben der Werte, die der Funktion new übergeben werden, entnommen.

Zum Beispiel wird das Objekt mycar mittels der Zuweisung in den runden Klammern der Funktion new beschrieben:



Mit Hilfe der Variablen mycar können nun die einzelnen Eigenschaften des Objekts angesprochen und weiterverarbeitet werden in der Form Variable.Objekteigenschaft=neue_Zuweisung.

Ein Objekt kann als Eigenschaft wiederum ein Objekt besitzen. Gäbe es z.B. das nachfolgende Objekt:

mit den zwei Vertretern:

so kann das obige Objekt car wie folgt erweitert werden:

und zwei Vertreter diese erweiterten car-Objekts, könnten nun wie folgt aussehen:


Um nun die Eigenschaft name eines Vertreters des Objektes car anzusprechen, muß die Angabe nun folgendermaßen aussehen:

car2.owner.name

Was sind Methoden?

Innerhalb der Definition eines Objekts, können diesem Funktionen zugewiesen werden, dies sind dann die Methoden des Objekts.

Soll zum obigen Objekt car z.B. eine Methode definiert werden, die als Anwendungsbeispiel zu einem aufgerufenen Bild des Autos, eine definierte Textausgabe hinzufügen soll, so könnte man folgende Funktionen innerhalb der HEAD-Umgebung definieren:



Als Methode innerhalb des Objekts ist die letzte Zeile zur vorhergenden Objekt-Definition hinzuzufügen:



Nun kann an entsprechender Stelle die Funktion wie folgt aufgerufen werden:
car1.displayCar(); Auf der Web-Seite erscheint dann:


Was sind die Standardobjekte?

Beim Aufruf einer Web-Seite im Netscape werden automatisch einige Objekte bezüglich des verwendeten Browsers und der geladenen Seite erzeugt:

navigator
Enthält Informationen über den benutzten Browser
window
Das Objekt window enthält Eigenschaften des aufgerufenen Fensters. Mit diesem Objekt können ferner neue Fenster definiert werden, wobei auch die Fenstereigenschaften frei bestimmbar sind.
location
Enthält die Beschreibung des aktuellen URL's.
history
Enthält die Liste der bisher besuchten URL's.
document
Beschreibt den Inhalt der Seite, wie Titel, Hintergrundsfarbe, Formulare, etc.

Diese Objekte, auch Client-Objekte genannt, sind, außer dem navigator-Objekt, in einer strengen Hierarchie angeordnet, wobei window das oberste ist. Ein nachfolgendes Objekt (auch ,,Nachkomme'' genannt) wie document ist eine Eigenschaft des Objekts window, welches wiederum Eigenschaften besitzt.

navigator

window
  |
  +--parent, frames, self, top 
  |
  +--location 
  | 
  +--history 
  |
  +--document 
       |
       +--forms
       |    |
       |  elements (text fields, textarea, checkbox, password
       |            radio, select, button, submit, reset)   
       +--links
       |
       +--anchors

In JavaScript setzte sich eine Terminologie durch, die zwischen Links und Ankern unterscheidet. Ein Link ist demnach definiert durch <a href="Adresse"> und ein Anker durch <a name="Name">.

Will man auf eine spezielle Eigenschaft referenzieren, so muß immer das zugehörige Objekte mit allen seinen Vorgängern angegeben werden außer dem obersten Objekt window, das weggelassen werden kann.

Des weiteren gibt es noch das Date-Objekt , welches das Abfragen und Verändern der Datumskomponenten ermöglicht, das Math-Objekt, welches einige gebräuchliche mathematische Konstanten und Methoden zur Verfügung stellt und das string-Objekt für Zeichenkettenoperationen.

Noch ein Beispiel: