19 Ocak 2009, PAZARTESİ
Javascript: nasıl "bu" değişken kolay mı?
Javascript çok iyi bir anlayış, "bu" değişken. set için iyi bir yol bulamıyorum dışında var Düşünün:
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
Bir şekilde son 4 satır olmadan bunu yapmak için var mı? Oldukça sinir bozucu... güzel ve zeki, ama bir faydası olduğunu düşündüğüm bir anonim işlev, bağlayıcı denedim:
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.
Belli ki, myFunction içine değişken geçirmeden bir seçenek... ama bu sorunun amacı bu değil.
Teşekkürler.
CEVAP
19 Ocak 2009, PAZARTESİ
İki yöntem javascript tüm fonksiyonlar için tanımlanmış, call() ve geçerli(). Fonksiyon sözdizimi gibi görünüyor:
call( /* object */, /* arguments... */ ); apply(/* object */, /* arguments[] */);
Bu işlevleri ne çağrılan ben onların işlevi, değeri atama arayın . ben^>nesneparametre içinbu.
var myFunction = function(){
alert(this.foo_variable);
}
myFunction.call( document.body );
Bunu Paylaş:
Nasıl "düzgün" JavaScript öz...
Nasıl "bu" JavaScript bir ne...
Nasıl "bağımsız" dönüştürme; ...
Nasıl herhangi bir komut dosyası düzen...
Nasıl PyDev "almak Tanımsız değiş...