У меня довольно хорошее представление о Javascript, за исключением того, что я не могу придумать хороший способ установить переменную this. Рассмотреть возможность:
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
Есть ли способ сделать это без последних 4 строк? Это довольно неприятно ... Я пробовал привязать анонимную функцию, которая мне показалась красивой и умной, но безуспешно:
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.
Очевидно, что передача переменной в myFunction - это вариант ... но вопрос не в этом.
Спасибо.
$.proxy(function, element)
так, чтобы всякий раз, когда эта функция вызывается, она будет в контексте element. api.jquery.com/jquery.proxy