Hilfe Warenkorb Kasse Konto Anmelden
                       
  Wirtschaft  
  Recht  
  Computer     Technik  
  Wissen  
  Medizin  
  Gesundheit  
  Psychologie  
  Pädagogik  
  Ratgeber     Sexualität  
  Erotik  
  Politik     Geschichte     Philosophie  
  Religion  
  Hobby  
  Reise  
  Belletristik  
Das heiße Eisen       Neuheiten       Preishits       Bestseller       Palm / Pocket PC       EPUB
     Download Reader
  Suchen und Finden
Schnellsuche



zur Expertensuche

  Tipps und Tricks
Freundschaftswerbung
Studentenermäßigung
Volltextsuche
Kapitelanzeige
Doppel-Download
Online-Lesen

  Newsletter
hier anmelden:

  Infos und Kontakt
Firmenkunden
Bibliotheken
Autoren
Buchhandel
Verlage
Presse
Werbepartner


Sprache wählen:
Dojo Toolkit. schnell + kompakt
  Großes Bild
 
Dojo Toolkit. schnell + kompakt
von: Michael Seemann
entwickler.press, 2007
 
Format: PDF, PDF
geeignet für: PC, MAC, Laptop Online-Lesen



Print-Preis:    €  7,90  
Preis:      6,70  
Sie sparen:      1,20  (15%)

Mehr zum Inhalt
Kapitelübersicht
Kurzinformation
Inhaltsverzeichnis
Leseprobe
Blick ins Buch
Fragen zum eBook?
124 Seiten
Download: 1135 KB
ISBN: 3939084492
PDF-Dokument anfordern
Leseprobe

KAPITEL 3 JavaScript objektorientiert (S. 53)

Die Konzeption der Sprache JavaScript sieht keine Klassen vor – es gibt nur Objekte. Genau genommen verfügen diese auch nicht über Methoden, sondern Funktionen. Diese Funktionen wiederum haben aber auch Objekteigenschaften. Außerdem ist Java- Script vielmehr eine funktionale als eine objektorientierte Programmiersprache. Da es keine Klassen gibt, basieren die objektorientierten Prinzipien der Sprache auch nicht auf herkömmlicher Vererbung von Eigenschaften einer Klasse an eine andere.

Vielmehr werden Objekte als Prototypen verwendet, deren Eigenschaften von anderen Objekten erweitert werden können. Deshalb besitzt jedes JavaScript-Objekt auch immer die Eigenschaft prototype. Wird auf eine Eigenschaft eines Objekts zugegriffen, die das Objekt selbst nicht hat, wird versucht, diese Eigenschaft über das Objekt zur ermitteln, das der Eigenschaft prototype zugeordnet ist. Ist sie auch dort nicht zu finden, wird dieses Verfahren bis zum Ende der Prototypkette fortgeführt.

Um die Verwirrung nicht noch zu vergrößern, werde ich – wie bisher in diesem Buch auch – von Klassen und Methoden bzw. Eigenschaften sprechen. Den Begriff Funktion oder statische Me- thode verwende ich, wenn diese keinem konkret zu erstellenden Objekt zugeordnet wurde. Mithilfe von Dojo ist es auch recht einfach, in diesen Kategorien zu denken, da Dojo einen Rahmen für objektorientiertes Arbeiten mit JavaScript bereitstellt.

3.1 Klassen definieren
Über die Eigenschaft prototype muss man sich keine Gedanken machen, wenn man Dojo verwendet. Um eine neue Klasse zu definieren, benutzt man die statische Methode dojo.declare. Eigentlich heißt die Funktion dojo.lang.declare. Man kann aber auch die abgekürzte Version benutzen. Der erste Parameter ist der Name der zu definierenden Klasse. Dojo sorgt dafür, dass die benötigten Objekte für die Modulstruktur erstellt werden. In diesem Fall wird ein Objekt dojokompakt erstellt, das über ein Objekt Figur verfügt.

Der zweite Parameter gibt die Vererbungshierarchie an. Da die Klasse dojokompakt.Figur eine (abstrakte) Oberklasse werden soll, gibt es keine übergeordneten Klassen und der Parameter ist null. Man hätte ihn auch ganz weglassen können. Bei Bedarf kann man eine Konstruktorfunktion angeben. Der Inhalt dieser Funktion wird bei jeder Objekterstellung per new ausgeführt. Es ist ebenfalls möglich, innerhalb des Konstruktors Eigenschaften der Objekte zu initialisieren. Diese müssen aber unbedingt mit der Eigenschaft this zugewiesen werden. Andernfalls wären sie nur innerhalb der Konstruktorfunktion sichtbar. Man könnte auf diese Weise private Eigenschaften und Methoden der Klassen definieren.

Das sollte man aber nur in Ausnahmefällen tun, da die Methoden (also die Funktionsobjekte) später in jedem Objekt der Klasse Speicher verbrauchen. Dojo verfügt deshalb auch nicht explizit über die Möglichkeit, private Eigenschaften und Methoden zu definieren, sondern benutzt die Konvention, dass alle privaten Eigenschaften mit einem Unterstrich beginnen. Dadurch sind diese Eigenschaften natürlich nicht privat im Sinne der Kapselung. Trotzdem sollte man sich daran halten, da sich die Implementierung ohne Vorwarnung ändern kann.

Die eigentlichen Eigenschaften und Methoden der Klasse werden in einem assoziativen Array definiert. Im Beispiel ist das die Eigenschaft Farbe und die Methode zeichne. Da es in JavaScript keine Möglichkeit gibt, Methoden als abstrakt zu deklarieren, muss man sich leider der Konvention bedienen, dass Methoden, die durch abgeleitete Klassen implementiert werden müssen, die Funktion dojo.unimplemented aufrufen.



nach oben

© 2010 ciando GmbH | AGB | Impressum | Kontakt | F.A.Q.