Abgesehen vom Problem, dass ich die Funktion über den Eventhandler aufrufe, also this dann auf das Window-Objekt zeigen müsste (das dürfte sich durch ein Closure lösen lassen):
Jein, du kannst ein lokale Referenz auf das aktuelle Objekt erstellen, die dann in deiner closure Funktion benutzt wird. Allerdings ist es schwierig zu sagen wie genau das aussieht, da du ja in deinem Beispiel ein allgemeines Objekt erstellst und kein Funktionsobjekt, das noch mehr Möglichkeiten bieten würde.
wie schon gesagt, es gibt für das was du willst mehrere Wege, nur welcher läßt sich nicht konkret sagen mit konkreten Angaben.
Um das mal etwas genauer zu beschreiben ein Beispiel wie man Eventhandler in einem Objekt benutzen kann.
function myObj(id) {
var o = document.getElementById(id);
var self = this;
// private Funktion
var myMouseover = function() { o.style.color = 'red';};
// public Funktion
this.click = function(e) { o.style.color = '';};
// Eventhandler
o.onclick = function(e) { self.click(e);};
o.onmousover = function(e) { myMouseOver();};}
> (ungetestet und ohne Fehlerabfrage)
Ja, ich denke, den Ansatz zu verstehen. Dein Objekt beinhaltet das Element, das Ereignis und die dann auszuführende Funktionalität. Natürlich möchte in meinem speziellen Objekt im Wesentlichen nur die Funktionalität definieren. Die Verbindung zum Ereignis und zum Element soll zentral definiert sein.
Um also aus einem zentralen Array ein solches Objekt zu gewinnen, könnte man sich etwas schaffen, welches aus einem abstraktes Objekt, den Parametern und der irgendwo definierten Funktion ein Objekt ähnlich deinem liefert, also Ereignis, Element und Funktionalität verbindet. Die Funktionsparameter sind dann in diesem Objekt gespeichert wie auch die speziell gestrickte Funktion.
Tatsächlich wäre mein nächster Schritt der Recherche in genau diese Richtung gegangen. Allerdings steht davor noch die genaue Auseinandersetzung mit prototypischer Vererbunug. Das schaffe ich vielleicht über die weihnachtlichen Tage.
Noch nicht klar ist mir, wie ich trotz diesen schon mal sinnvollen Ansatzes in meinem Objekt die ...
Egal. Das muss ich mir erst noch überlegen und etwas experimentieren. Soweit schon mal schönen Dank,
greh