Tengo un conocimiento bastante bueno de Javascript, excepto que no puedo encontrar una buena manera de establecer la variable "this". Considere:Establecer "esta" variable fácilmente?
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 unir una función anónima, que me pareció 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, pasando la variable en myFunction es una opción ... pero eso es no es el punto de esta pregunta.
Gracias.
Además, si está utilizando jQuery, puede usar '$ .proxy (función, elemento)' para que siempre que esa funcion n se llama, será en el contexto de elemento. http://api.jquery.com/jquery.proxy/ –