Mam dość dobre zrozumienie JavaScript, z tym wyjątkiem, że nie mogę znaleźć ładny sposób, aby ustawić "tę" zmienną. Rozważ:Łatwo ustawić "tę" zmienną?
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 linii? To raczej irytujące ... Próbowałem wiążące anonimową funkcję, co uważałem, że był piękny i mądry, 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 przechodzącą zmiennej do myFunction jest opcja ... ale to nie chodzi o to pytanie.
Dzięki.
Ponadto, jeśli używasz jQuery, możesz użyć '$ .proxy (function, element)', aby kiedykolwiek ten functio n nazywa się, będzie w kontekście elementu. http://api.jquery.com/jquery.proxy/ –