Ich habe eine Klasse (oder Funktion enthält Objekt; ich habe gehört, dass es keine so etwas wie eine Javascript-Klasse) namens Foo, mit einem Event-Handler, der angefügt ist zu einem Klick-Event. Wenn der Event-Handler aufgerufen wird, möchte ich eine Eigenschaft meiner Klasse Foo ändern. Normalerweise würde ich das Schlüsselwort this
verwenden, aber im Ereignishandler wird der Verweis this
auf den Verweis auf das HTML-Element gesetzt. Hier ist mein Code:Javascript Verweis auf Eltern Objekt/Klasse aus Ereignishandler
function Foo() {
this.num=0;
$('element').click(this.eventHandler);// jQuery to attach an onclick event to my element.
this.eventHandler=function() {
this.num++;// This doesn't work.
// Normally, "this" would refer to my instance of Foo,
// but as an event handler, "this" refers to the html element.
}
}
Also meine Frage ist: Wie kann ich einen Verweis auf meine Instanz von Foo in meinen Ereignishandler bekommen, so dass ich seine Eigenschaften ändern kann (wie num
)?
Konnte diese Lösung nicht zu einem Speicherverlust führen, wenn das Objekt jemals freigegeben werden muss? –