Я дуже добре розумію 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)
так, що коли ця функція буде викликана, вона буде в контексті елемента. api.jquery.com/jquery.proxy