Ben "bu" değişkeni ayarlamak için güzel bir yol anlayamıyorum dışında, Javascript oldukça iyi bir anlayış var. Düşünmek:
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
Son 4 satır olmadan bunu yapmanın bir yolu var mı? Oldukça sinir bozucu ... Güzel ve zeki olduğunu düşündüğüm anonim bir işlevi bağlamayı denedim, ancak boşuna:
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.
Açıkçası, değişkeni myFunction'a geçirmek bir seçenektir ... ama bu sorunun amacı bu değildir.
Teşekkürler.
$.proxy(function, element)
bu işlev her çağrıldığında öğenin bağlamı içinde olacak şekilde kullanabilirsiniz. api.jquery.com/jquery.proxy