Ich habe ein ziemlich gutes Verständnis von Javascript, außer dass ich nicht einen netten Weg finde, um die "this" Variable zu setzen. Betrachte:"Diese" Variable leicht einstellen?
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 ärgerlich ... Ich habe versucht, eine anonyme Funktion zu binden, was ich dachte, war schön und klug, 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.
Offensichtlich die Variable in myFunction vorbei ist eine Option ... aber das ist nicht der Punkt dieser Frage.
Danke.
Wenn Sie jQuery verwenden, können Sie auch '$ .proxy (function, element)' verwenden wann immer diese Funktion n heißt, es wird im Kontext von Element sein. http://api.jquery.com/jquery.proxy/ –