JavaScript - auf Matthias-Draeger.info

JavaScript - auf Matthias-Draeger.info JavaScript - auf Matthias-Draeger.info

matthias.draeger.info
von matthias.draeger.info Mehr von diesem Publisher
29.06.2015 Aufrufe

Objekte in JavaScript • Prototyp-Objekte statt Klassen • Eigenschaften, Attribute (properties) • Komponenten (sub-objects) • Methoden (methods) • Ereignisse (events) • Erzeugung mit Funktion als Konstruktor, z.B. function Complex(re, im) { this.re = re; this.im = im; } const notpi = new Complex(3.14, x); (vgl. Beta) • Somit Funktionsname als Ersatz für Klassenname! • ... oder kürzer mit Wertbezeichner in { }: const notpi = { re: 3.14, im: x } • Die Eigenschaften sind auch als Tabelle (assoziatives Feld) ansprechbar: notpi.re == notpi["re"] Robert Tolksdorf und Peter Löhr 18

Methoden von Objekten • Methoden können als Funktionen dem Konstruktor übergeben oder auch dynamisch (!) an ein Objekt gebunden werden. Der Methodenname kann ad hoc eingeführt werden! Beispiel: object.method1 = somefunction; object.method1(...); // binding // invocation Die Funktion bezieht sich mittels this auf das Objekt. • Funktionen sind selbst wiederum Objekte. • Objektmodell ist extrem reichhaltig und flexibel. • Zum JavaScript-Experten wird man nicht an einem Tag. Robert Tolksdorf und Peter Löhr 19

Methoden von Objekten<br />

• Methoden können als Funktionen dem Konstruktor<br />

übergeben oder auch dynamisch (!) an ein Objekt<br />

gebunden werden. Der Methodenname kann ad hoc<br />

eingeführt werden! Beispiel:<br />

object.method1 = somefunction;<br />

object.method1(...);<br />

// binding<br />

// invocation<br />

Die Funktion bezieht sich mittels this <strong>auf</strong> das Objekt.<br />

• Funktionen sind selbst wiederum Objekte.<br />

• Objektmodell ist extrem reichhaltig und flexibel.<br />

• Zum <strong>JavaScript</strong>-Experten wird man nicht an einem Tag.<br />

Robert Tolksdorf und Peter Löhr 19

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!