SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • habpsu

    habpsu

    25 Temmuz 2007
  • Shaollin Animes

    Shaollin Ani

    19 HAZİRAN 2013
  • The Computer Chronicles

    The Computer

    7 Kasım 2012