JürgenB: Prototypische Erweiterung und private Variablen

Beitrag lesen

Hallo,

ich benötige etwas Nachhilfe in Sachen OOP: Wenn ich in einer Funktion Untermethoden mit this.xxx=function() definiere, kann ich in diesen auch auf private Variablen aus der übergeordneten Funktion zugreifen. Erweitere ich aber eine Funktion per prototype, geht dieses nicht. Das folgende Beispiel zeigt mein Problem:

  var o = function() {  
    var p = "Privat";  
    this.e = "Öffentlich";  
    this.f1 = function() {  
      alert("f1:"+p+" "+this.e) ; // OK  
    }  
  }  
  o.prototype.f2 = function() {  
      alert("f2:"+this.e) ;       // OK  
      alert("f2:"+p) ;            // Fehler: p is not defined  
  }  
  
  var ob = new o() ;  
  ob.f1();  
  ob.f2();  

gibt es eine Möglichkeit, auch aus "f2" auf "p" zuzugreifen?

Gruß, Jürgen