mrjerk: OOP: Objekt von Außerhalb mit Funktion bestücken und ausführen

Beitrag lesen

Hallo,
Theoretisch müsste auch dieser Ansatz gehen:

function klasse(onMyEvent)  
{  
  var private_variable1;  
  var private_variable2;  
  this.oeffentliche_variable1;  
  
  this.onmyevent = function () {onMyEvent(private_variabel1,  
  private_variable2);}  
  
}  
  
}

Oder auch über einen Getter:

function klasse()  
{  
  var private_variable1;  
  var private_variable2;  
  this.oeffentliche_variable1;  
  
  this.onmyevent = null;  
  this.getPrivateVariable1 = function () {return(private_variable1);};  
  
}  
  
...  
obj1.onmyevent = function () {  
   doSomethingWith (this.getPrivateVariable1());  
}  
  
}

Damit konservierst Du gewissermassen die benötigten Daten, sprich die
Variablen "private_variable1" und "private_variable2" sowie die "onMyEvent"-Methode bleiben auf dem Stack, auch wenn der Konstruktor verlassen wird (Stichwort Closure).

Ob das allerdings so elegant an dieser Stelle ist weiß ich nicht....ich würde wohl eher mit öffentlichen Variablen arbeiten (this.private_variable1 =...), und mir diese entsprechend als "private" kennzeichen (durch ein "_"-Präfix o.ä., wie schon in anderen Posts vorgeschlagen), denn das "private"-Konzept in JavaScript ist ohnehin kein "echtes" (wie in Javva/C# o.ä.)

Hope that helps,

Jörg