Dobrze rozumiem JavaScript, poza tym, że nie mogę znaleźć dobrego sposobu na ustawienie zmiennej „this”. Rozważać:
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
Czy można to zrobić bez ostatnich 4 wierszy? To dość denerwujące ... Próbowałem przypisać anonimową funkcję, którą uważałem za piękną i sprytną, ale bezskutecznie:
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.
Oczywiście przekazanie zmiennej do myFunction jest opcją ... ale nie o to chodzi w tym pytaniu.
Dzięki.
$.proxy(function, element)
tak, aby za każdym razem, gdy ta funkcja była wywoływana, była w kontekście elementu. api.jquery.com/jquery.proxy