Saya memiliki pemahaman yang cukup bagus tentang Javascript, kecuali bahwa saya tidak dapat menemukan cara yang bagus untuk mengatur variabel "ini". Mempertimbangkan:
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
Apakah ada cara untuk melakukan ini tanpa 4 baris terakhir? Agak menyebalkan ... Saya sudah mencoba mengikat fungsi anonim, yang saya pikir cantik dan pintar, tetapi tidak berhasil:
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.
Jelas, mengirimkan variabel ke fungsi saya adalah sebuah pilihan ... tapi itu bukan poin dari pertanyaan ini.
Terima kasih.
$.proxy(function, element)
sehingga kapan pun fungsi itu dipanggil, itu akan berada dalam konteks elemen. api.jquery.com/jquery.proxy