Javascript'te İleri Teknikler - 3

Bu dersimizde Eval, typeof ve instanceof nesnelerini inceleyelim.

Bu dersimizde Eval, typeof ve instanceof nesnelerini inceleyelim.

Eval nesnesi :
Eval nesneleri javascript'in nesneye yönelik programlaması açısından büyük önem taşırlar. Eval nesnesinin en basit açıklaması şudur:

Eval bir öntanımlı bir fonksiyondur ve üzerine argümanla gönderilen nesneyi tüm sayfada arar ve karşılık bulduğunda nesnenin tipine göre işlem yapar.

Böyle söyleyince hiçbirşey anlaşılmıyor biliyorum o yüzden bir örnekle gösterelim :



function  cagrilacak( deger  ){



// bir fonksiyon tanımladık.

eval('cagrilacak("sad")');

// Gördüğünüz gibi eval fonksiyonunun argümanına çağrılacak olan fonksiyonumuzu bir string(yazi) olarak yazdık.Ancak eval bizim için onu sayfada araştıracak ve daha önceden ona karşılık gelen 'cagrilacak' fonksiyonunun tanımlı olduğunu görecektir.



Bir nêvi eval fonksiyonu bizim için içersine yazılan argümanı bir javascript nesnesine dönüştürüyor diyebiliriz.

Peki nerede kullanabiliriz bu eval nesnesini?

Aslında bu tamamen sizin yaratıcılığınıza kalmış bir olay ancak kısa bir örnek vermek gerekirse ; normalde window.onload nesnesinin karşısına yazılan bir fonksiyonun onload event'ine atandığını biliyoruz. Ancak window.onload'a atanan yeni fonksiyon diğer önceden atananların hepsini geçersiz kılar. Bunun önüne geçmek için basit bir statik sınıf ve eval kullanarak bir script oluşturalım.


var  wonload = new Array(); // burada biriktireceğimiz onload eventine ait fonksiyon isimleri için bir variable oluşturduk.

var  Olay = {

       loadEkle : function ( gelenFunk ){

        wonload[wonload.length] = gelenFunk; // array nesnesine yeni bir string ekliyoruz

        window.onload = function () { // window.onload eventimizi yeniden tanımlıyoruz

            for(var t = 0 ; t < wonload.length ; t++){

            eval(wonload[t]);  // wonload içersinde bulunan her stringi function'a dönüştürüp çağırmasını istiyoruz.

}

}

}

}





//kullanımı



Olay.loadEkle("acildi");



typeof nesnesi
Typeof nesnesi belirtilen nesnenin türünü yansıtır. Belirtilen nesnenin ne olduğu fark etmez ister bir string, ister bir int, date, function, HTML kontrolü olsun typeof bu nesnenin türünü bize döndürecektir. typeof'un kullanımı oldukça basittir:

typeof (nesne) şeklinde yazılır ve karşılığında size String bir değer döndürür.

Peki sayfa içerisinde nasıl kullanılabilir?

Tekrar söyleyeyim bu tamamen sizin yaratıcılığınıza kalmış ancak ben örnek olsun diye yukarıdaki nesneye küçük ( ama gerekli ) bir eklenti yapacağım.

Dikkat ederseniz window.onload eventimizin karşısına yazdığımız fonksiyonun içersine:


eval(wonload[t]);



komtunu verdik. Ve demiştikki eval bizim için tanımlı olan nesneyi bulacaktır yani illa fonksiyon olacak diye bir şart yok.Ancak biz sadece fonksiyon istiyorsak o zaman tip kontrolü yapmanın sırası gelmiş demektir. O kısma şunları ekliyoruz :


if(  typeof ( eval( wonload[t] )   )  == ?function?){

    eval(wonload[t]);

}



Artık typeof fonksiyonumuz sayesinde eval (wonload[t]) karşılığında dönen nesnenin türü eğer function değilse bir işlem yapmamasını söyledik.

instanceof nesnesi
instanceof nesnesi bir nesnenin belirtilen diğer nesnenin elemanı olup olmadığını kontrol eder.

instanceof nesnesi Boolean(bool) dediğimiz true/false değerini döndürür.

Örneğin :


var  modul = function () {

}



var kont = new modul();



if( kont   instanceof   modul){ // burası true ise ile aynı yazımdır

    //kont nesnemiz eğer modul nesnemize bağlı bir nesneyse ( ki yeni dynamic bir sınıf oluşturuludğunda sınıf tüm özelliklerini bu nesneye yükler) bu kısım geçerli olacaktır.

}



Bunu nerede kullanabileceğiniz konusunda şu an kafamda bir şey oluşturamadım . Ancak işinize yarayacağından eminim..

Ders - 4'te bir fonksiyonu oluşturan nesneyi (constructor) inceleyeceğiz.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git