Tengo una buena comprensión de Javascript, excepto que no puedo encontrar una buena manera de establecer la variable "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
¿Hay alguna manera de hacer esto sin las últimas 4 líneas? Es bastante molesto ... He intentado vincular una función anónima, que pensé que era hermosa e inteligente, pero fue en vano:
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, pasar la variable a myFunction es una opción ... pero ese no es el punto de esta pregunta.
Gracias.
$.proxy(function, element)
para que cada vez que se llame a esa función, esté en el contexto del elemento. api.jquery.com/jquery.proxy