Ich habe ein ziemlich gutes Verständnis von Javascript, außer dass ich keine gute Möglichkeit finden kann, die Variable "this" festzulegen. Erwägen:
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
var old_fn = someObj.fn; //store old value
someObj.fn = myFunction; //bind to someObj so "this" keyword works
someObj.fn();
someObj.fn = old_fn; //restore old value
Gibt es eine Möglichkeit, dies ohne die letzten 4 Zeilen zu tun? Es ist ziemlich nervig ... Ich habe versucht, eine anonyme Funktion zu binden, die ich für schön und klug hielt, aber ohne Erfolg:
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
someObj.(function(){ fn(); })(); //fail.
Natürlich ist die Übergabe der Variablen an myFunction eine Option ... aber darum geht es bei dieser Frage nicht.
Vielen Dank.
$.proxy(function, element)
so verwenden, dass es bei jedem Aufruf dieser Funktion im Kontext des Elements steht. api.jquery.com/jquery.proxy