Einführung in die Objektorientierung (OOP)

09.04.2008

Java Script wird in der Regel dazu genutzt, um eine Webseite interaktiv zu gestalten, bewegte Elemente einzufügen oder Formluardaten zu überprüfen.

Besondere Flexibilität lässt sich dabei erreichen, indem man Objektorientierung einsetzt. Die Umsetzung ist in Java Script etwas gewöhnungsbedürftig, hat aber auch Vorteile, und kaum einbußen gegenüber Sprachen wie Java, C++ oder auch PHP.

Das Tutorial gliedert sich in zwei Teile. In Teil 1 wird gezeigt, wie man generell Objekte erstellt und in Teil 2 wird dann Vererbung behandelt.


Instanzen eines Objekts anlegen

Eine neue Instanz eines Objekts bekommt man in Java Script über das Schlüsselwort new.

JAVASCRIPT - Code:
 
function Foo() {
    alert("Ich bin ein Objekt");
}
       
// Instanz anlegen,
// die Funktion Foo() selbst ist der Konstruktor
f = new Foo();
 

Genau genommen wird dabei keine Instanz angelegt, sondern ein neues Objekt erzeugt, was wir später bei der Vererbung ausnutzen können.


private und public Eigenschaften

private Eigenschaften kann man im Konstruktor über das Schlüsselwort var anlegen. Private Funktionen werden normal als Funktion im Konstruktor angelegt.

Ein Beispiel dazu:
JAVASCRIPT - Code:
 
function Foo2() {
    // private Eigenschaft x
    var x = 0;
   
    // private Funktion toString
    function toString() {
        return "(" + x + ")";
    }
}
       
f = new Foo2();
 

Das Objekt Foo2 hat 2 private Eigenschaften, die von außerhalb nicht aufgerufen werden können.

Damit uns das Objekt nun etwas nützt, müssen wir es um öffentliche Eigenschaften erweitern. Dies geht über 2 Wege, this und this.prototype:

Mit this können wir innerhalb vom Konstruktor Eigenschaften festlegen.

JAVASCRIPT - Code:
 
function Foo3() {
    var x = 0;
   
    function toString() {
        return "(" + x + ")";
    }
           
    // Die public Funktion getX() anlegen
    this.getX  = function () {
        return x;
    }
}
 

prototype ist sogar etwas mächtiger und hält den Code sauberer, denn wir können damit das Objekt nachträglich um (öffentliche) Eigenschaften erweitern.

JAVASCRIPT - Code:
 
// Foo3 erweitern
Foo3.prototype.showX = function () {
    alert(this.getX());
}
 

Der Vorteil schwindet jedoch, wenn man Zugriff auf private Eigenschaften braucht. Diese sind nur von Funktionen innerhalb des Konstruktors erreichbar.


Weiter mit Teil 2 - Vererbung

Deine Meinung ist gefragt:


Es wurden noch keine Kommentare geposted.

Sei der Erste und teile uns Deine Meinung mit.

Einen neuen Kommentar erstellen...