RSS

Sınıf İçerisindeki Event’larda Bind İşlemi (MooTools)

09 Ara

Hazır aklımdayken, unutmadan yazmak istedim.. MooTools sınıf yapısına dayalı bir framework olduğu için genelde sınıf içerisindeevent‘lar tanımlıyoruz.. Ve bu event‘lar içerisinde sınıf içerisindeki herhangi bir metoda erişmek için this kullanmamız gerekiyor.. Fakat ancak velakin event içerisinde this o event‘ın this‘i olduğundan sınıf içerisindeki metodlara this kullanarak erişemiyoruz.. İşte böyle bir durumda this‘i bind etmemiz gerekecek.. Peki nasıl yapacağız?

Bind Edilmemiş Hali

/* ... diğer class kodları */

create: function(){

     $('close_button').addEvent('click', function(){
         this.close(); /* sınıfa erişemediğimiz için hata alacağız */
     });

}

/* diğer class kodları ... */

Bind Edilmiş Hali

/* ... diğer class kodları */

create: function(){

     $('close_button').addEvent('click', function(event){
         this.close(); /* düzgün bir şekilde çalışacak */
     }.bind(this));

}

/* diğer class kodları ... */

Burada event’ın nesnesine fonksiyon’a parametre girerek erişebiliriz. Artık böyle bir sorunla karşılaşırsak bu şeklide çözeceğimizi öğrenmiş olduk :)

Not: Başka yolları var ise, yorum olarak belirtirseniz bende öğrenmiş olurum. (Değişkene aktarıp kullanmak dışında tabi ki)

 
Yorum yapın

Yazan: Aralık 9, 2013 in JavaScript

 

Yorum bırakın