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

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çerisinde event‘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)

Yayınlayan

Tayfun Erbilen

2009’dan beri web işleriyle uğraşan, aynı zamanda amatör müziklede ilgilenen sıradan birisi..

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir