Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Die Basis der Objektorientierung
3 Die Prinzipien des objektorientierten Entwurfs
4 Die Struktur objektorientierter Software
5 Vererbung und Polymorphie
6 Persistenz
7 Abläufe in einem objektorientierten System
8 Module und Architektur
9 Aspekte und Objektorientierung
10 Objektorientierung am Beispiel: Eine Web-Applikation mit PHP 5 und Ajax
A Verwendete Programmiersprachen
B Literaturverzeichnis
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Objektorientierte Programmierung von Bernhard Lahres, Gregor Rayman
Das umfassende Handbuch
Buch: Objektorientierte Programmierung

Objektorientierte Programmierung
2., aktualisierte und erweiterte Auflage, geb.
656 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1401-8
Pfeil A Verwendete Programmiersprachen
  Pfeil A.1 C++
  Pfeil A.2 Java
  Pfeil A.3 C#
  Pfeil A.4 JavaScript
  Pfeil A.5 CLOS
  Pfeil A.6 Python
  Pfeil A.7 Ruby


Rheinwerk Computing - Zum Seitenanfang

A.4 JavaScript  topZur vorigen Überschrift

JavaScript wurde ursprünglich bei Netscape entwickelt und hatte seinen ersten Einsatz in der Version 2 des Netscape Navigators. JavaScript wurde dort eingesetzt, um Webseiten mit dynamisch erzeugten Inhalten zu versehen. Microsoft entwickelte eine Entsprechung hierzu unter dem Namen JScript. In den Versionen des Internet Explorers ab Version 3.0 wird also nicht eigentlich JavaScript unterstützt, sondern JScript. Allerdings erfolgte eine Vereinheitlichung der beiden damit existierenden De-facto-Standards unter dem Namen ECMA-Script. ECMA stand ursprünglich für European Computer Manufacturers Association, mittlerweile gibt es diese aber nicht mehr unter diesem Namen, und die ECMA ist zu einer Institution geworden, die Standards im Bereich der IT-Technologie verwaltet. Wenn das verwirrend klingt, ist das kein Zufall. Es ist nämlich verwirrend. Zwar basieren die aktuellen Versionen von JavaScript und JScript beide auf der Version ECMA-262, Revision 3. Die beiden Sprachen bringen jedoch jeweils eigene Erweiterungen mit ein, so dass für eine Variante erstellte Skripte nicht unbedingt in einem anderen Browser lauffähig sind.

Allerdings hat sich als Name weder JScript noch ECMAScript durchgesetzt. Und man muss auch zugeben, dass ECMAScript nun wirklich kein schöner Name ist. Deshalb wird in der Regel einfach der Name JavaScript verwendet, auch wenn dabei eigentlich der Standard (ECMAScript) oder die Umsetzung des Standards in den Microsoft-Produkten (JScript) gemeint ist. Mit Java hat JavaScript außer der Namensähnlichkeit sehr wenig gemeinsam. Die Syntax basiert eher locker auf der Sprache C, die objektorientierten Mechanismen von JavaScript sind völlig andere als die von Java.

Struktur von JavaScript

JavaScript ist dynamisch typisiert und wird in der Regel in der jeweiligen Laufzeitumgebung (häufig ein Webbrowser) interpretiert.

JavaScript kennt keine Klassen. Eine Art von Vererbungsbeziehung ist dennoch über die Zuordnung von sogenannten Prototypen möglich. Jedem Objekt kann dadurch ein Prototyp (wieder ein Objekt) zugeordnet werden, dessen Eigenschaften das Objekt mit übernimmt. Dadurch können Ketten aufgebaut werden, die eine Art von Vererbungsbeziehung darstellen. Jedes Objekt erbt damit alle Eigenschaften der folgenden Objekte in der Kette.

Da diese Beziehungen zwischen Objekten bestehen und nicht zwischen Klassen, können die Struktur und die Eigenschaften aller Objekte zur Laufzeit angepasst werden. Wird also ein Objekt zur Laufzeit geändert, das als Prototyp für mehrere andere Objekte agiert, ändern sich auch die Eigenschaften dieser beteiligten Objekte.

Syntax von JavaScript

function StructuredName() 
{ 
    // ... Funktionalitäten von strukturierten Namen 
} 
 
function VersionNumber(parts)  
{ 
    this.parts = parts;  
    this.toString = function()  
    { 
        description = ""; 
        for (var i = 0; i < parts.length – 1; ++i)  
        { 
           description = description + parts[i] + "."; 
        } 
        return description + parts[parts.length – 1];  
 
    }; 
} 
 
VersionNumber.prototype = new StructuredName();  
 
var parts = new Array("6","0","2800","1106");  
var version = new VersionNumber(parts);  
alert(version.toString());  
version.product = "Internet Explorer"; 
  • Die Funktion VersionNumber, die als Vorlage für Objekte dient.
  • Jedes über die Funktion VersionNumber erstellte Objekt enthält eine Variable mit dem Namen parts. Da JavaScript dynamisch typisiert ist, ist der Typ der Variablen nicht festgelegt. Da die Variable über this.parts deklariert ist, ist sie auch nach außen sichtbar. Wenn wir stattdessen die Deklaration var myparts = parts verwendet hätten, wäre die Sichtbarkeit auf interne Methoden beschränkt. In JavaScript lassen sich also durchaus Entsprechungen zu privaten Instanzvariablen realisieren.
  • Jedes über die Funktion erstellte Objekt hat wiederum eine Methode toString, die an dieser Stelle implementiert wird.
  • An dieser Stelle wird die Annahme gemacht, dass es sich bei parts um ein Array handelt, das hier durchlaufen wird. Sollte parts zur Laufzeit mit einem Objekt eines anderen Typs belegt sein, kommt es zu einem Laufzeitfehler.
  • Die Methode toString gibt ihr Ergebnis über return zurück.
  • Über die Zuweisung VersionNumber.prototype = new StructuredName() wird eine Vererbungsbeziehung etabliert. Die über die Funktion VersionNumber erstellten Objekte haben alle Eigenschaften, die das über new StructuredName() erstellte Objekt aufweist.
  • Wir legen ein Objekt vom Typ Array an und weisen dieses der Variablen parts zu.
  • Über den Aufruf von new in Kombination mit einer Funktion wird die Funktion als Objektkonstruktor benutzt. Es wird ein neues Objekt erstellt und mit den in der Funktion definierten Eigenschaften ausgestattet.
  • Die Methode toString wird für das neu angelegte Objekt aufgerufen.
  • Dem Objekt, das der Variablen version zugewiesen ist, ordnen wir nun ein neues Attribut product zu und belegen es mit dem Wert »Internet Explorer«. Damit unterscheidet sich dieses Objekt in seiner Struktur von anderen Objekten, die über die Funktion VersionNumber angelegt wurden.

Ressourcen

Eine online verfügbare gute Dokumentation zur JavaScript ist Teil der von Stefan Münz gepflegten Selfhtml-Webseite. Unter http://de. selfhtml.org/javascript/ findet sich eine gute Übersicht über die Sprache und auch ihre Geschichte.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 <<   zurück
  Zum Rheinwerk-Shop
Neuauflage: Objektorientierte Programmierung






Neuauflage:
Objektorientierte Programmierung

Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern