Ho una buona conoscenza di Javascript, tranne per il fatto che non riesco a capire un modo carino per impostare la variabile "this". Tener conto di:
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
C'è un modo per farlo senza le ultime 4 righe? È piuttosto fastidioso ... Ho provato a associare una funzione anonima, che pensavo fosse bella e intelligente, ma inutilmente:
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.
Ovviamente, passare la variabile in myFunction è un'opzione ... ma non è questo il punto di questa domanda.
Grazie.
$.proxy(function, element)
modo che ogni volta che viene chiamata quella funzione, sarà nel contesto dell'elemento. api.jquery.com/jquery.proxy