Struppi: lokale Variablen im Konstruktor

Beitrag lesen

Variablen, die mit var definiert wurden, sind privat - sie können nur von Funktionen zugegriffen werden, die innerhalb von MyObject definiert sind; man spricht in diesem Fall von Memberfunktionen.

Also schön. Aber müsste ich dann auf diese var nicht auch von anderen Memberfunktionen des Objektes zugreifen können?

Nur mit den sogenannten privilegierten Funktionen, dass sind, die die du in der Konstruktor Funktion anlegst.

function myObj()  
{  
    // Das ist eine private/lokale Variabeln,  
    // die nur innerhalb der Funktion gültig ist  
    // aber solange gültig ist, wie das Objekt besteht  
    var x = 0;  
  
    // Ein private Funktion  
    var quadrat = function()  
    {  
         return x * x;  
    }  
  
    // Das eine priviligierte Funktion, die auf alle  
    // privaten Eigenschaften und Methoden zugreifen kann  
    this.func = function()  
    {  
         return 'Das Quadrat von ' + x + ' = ' + quadrat();  
    }  
}

Damit kannst du in JS echte private Variabeln und Methoden erzeugen, auf die man von aussen nicht zugreifen kann.

x ist ein Bestandteil des Objekte, das du mit der Funktion erzeugst, es ist also nicht wie in einer normalen Funktion, die du aufrufst und nach dem Aufruf ist die Variabel nicht mehr vorhanden.

Struppi.