Home

Lesson 08: Classic OO Concepts

jsBin

08 Classic OO Concepts

Artikel:

Private Member-Variablen
Erzeugt mit var im Objekt
Private Methoden
Definiert im Objekt (inline inside oder über var)
Privilegierte Methoden
Definiert im Objekt als klassische Methode über this.method = ...
Public Member-Variablen
Definiert im Objekt als klassische Eigenschaft über this.prop = ...
Public Methoden
Definiert im Prototyp (aber kein Zugriff auf private Member!)
Static Member
Definiert über Klasse.Member

Beispiel


function GiroKonto() {

    // access to static member
    this.constructor.maxNr++;

    // private member
    var nr = this.constructor.maxNr, stand = 0, dispo = 0;

    // public member
    this.inhaber = 0;

    // private method
    function checkNonNegative( value ) {
        if( value < 0 ) {
            console.error("Negative value not allowed.");
            throw { name: "ArgumentException", message: "Negative values are not allowed. "};
        }
        return true;
    }

    // privilegierte Member
    this.getNr = function() { return nr; };
    this.getStand = function() { return stand; };
    this.getDispo = function() { return dispo; };
    this.setDispo = function(value) { checkNonNegative(value); dispo = value; };

    this.einzahlen = function (betrag) {
        stand += betrag;
    }
}

// static member
GiroKonto.maxNr = 0;

// public methods
GiroKonto.prototype.toString = function () {
    return 'Konto: ' +  this.getNr() + ", Stand: " + this.getStand();
}
        

Links zu Exception-Handling