Eu tenho um bom entendimento de Javascript, exceto que não consigo descobrir uma boa maneira de definir a variável "this". Considerar:
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
Existe uma maneira de fazer isso sem as últimas 4 linhas? É um pouco chato ... Tentei vincular uma função anônima, que achei bonita e inteligente, mas sem sucesso:
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.
Obviamente, passar a variável para myFunction é uma opção ... mas esse não é o objetivo desta pergunta.
Obrigado.
$.proxy(function, element)
lo para que, sempre que essa função for chamada, ela esteja no contexto do elemento. api.jquery.com/jquery.proxy