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

  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • Schmittastic Jr.

    Schmittastic

    19 Mart 2013