Your Ad Here

Javascript Yazılım Kuralları (JS)

22 Aralık 2007

Nesnel Tabanlı Programlama

Nesneler

Bir nesne "şeydir". Örneğin sayı bir nesnedir. Bir dizi bir nesnedir. Tarayıcınız bir nesnedir. Belgenizdeki bir form da nesnedir. Daha binlerce örnek tanımlanabilir.

Nesnelerin içinde başka nesneler de olabilir. Örneğin belgenizin içinde form olabilir. Bu form belgenin çocuk nesnesidir. Bu durumda belge de formun baba (üst) nesnesi olur. İçteki nesneye ulaşmak için üst (dış) nesneden geçmek gerekir (örneğin document.myForm gibi).

Bir dizinin hücreleri içinde sayılar vardır. Daha önce tartışıldığı gibi dizi bir nesnedir. Aynı biçimde içindeki hücreler de. Dizinin içindeki sayılar da nesne olur. Hücrelere doğrudan erişilemez ama içeriklerine erişilebilir (myArray['hucre_adi' ya da sayısı] gibi).

Sınıflar (Classes) ya da tipler (types)

Bir sınıf, bir biçimiyle aynı olan nesneler birikimidir. Örneğin bir sayı ve bir yazı bir değişken olarak saklanabilir (Cebirdeki değişkenlerin kullanımı gibi). Bu durumda o sayı ve yazı parçalarına değişkenin sınıfı denebilir.

Sayılar iki alt gruba ayrılır. Tamsayılar ve gerçek sayılar (kayan noktalı sayılar). Tam sayılar 1,2,3,4,0 -1 gibidir. Gerçek sayılarda ondalık nokta (ondalık virgül) vardır. 1.1, -5.7 gibi sayılar gerçek sayılardır (real numbers). Bu tanımlara göre 3, değişken sınıfının sayı (alt)sınıfının, tamsayı (alt)sınıfındandır.

Aslında, bir değişken "object" türüdür. "object" sınıfının tüm bileşenleri açık iki yöntemi vardır: toString() ve valueOf(). O halde 3, "object" sınıfının bileşeni, (alt)sınıf değişkeni, (alt)sınıf sayısı, (alt)sınıf tamsayısı ve "object" sınıfından kalıt olan toString() ile valueOf() yöntemleri ile sağlanır.

Sınıflar javascript ortamında o kadar önemli değildir. Sınıflar nesneleriniz için sınıf tanımlamak istediğinizde gerekebilir. Ama sizin kendi alt-sınıflarınızı yaratmanız çok sık kullanılmaz.

Birikim

Her belgenin içinde bulunan bir çok dizi vardır. Bazı kullanım ortamlarında her belgede bir çok dizi vardır. Bunlardan en açık olanı resim birikimidir. Bir belgedeki resimlere erişmek için document.images['resim_adi'] kullanılır. Bu özel diziye "birikim" denir.

Özellikler

Bir resmi ele alındığında onu HTML'de tanımlamak aşağıdaki gibi olur:

<img src="frog.gif" name="myImage" height="10" width="10" alt="A frog">

Resmin özellikleri (nitelikleri) "src, name, height, width, alt" olur. Eğer stil sayfaları kullanılmıyorsa, biraz daha nitelik eklemek gerekir (örneğin artalan rengi gibi). Tüm özellikler "object" türüdür. Bu durumda "src" değerine erişmek için:

   document.images['myImage'].src

kullanılır.

Yöntemler (Methods)

Her zaman bir nesneye bağlı işlemler vardır. Örneğin bir form ya gönderilir ya da silinir. İşlemlere "yöntem" denir. Nesnel olmayan programlarda bir formu göndermek için:

   submit('form_adi')
yazılır.

Bu basit bir işlevdir. Javascript gibi olan nesnel tabanlı programlarda "document.nameOfForm.submit()" biçiminde kullanılır.

Bunun bir yöntem olması ve yalnız işlev olmaması, her form için ayrı bir "submit" kullanılıyor olmasındandır. Kullanıcı kendi nesnesini yaratmak zorunda kalmazsa, yöntemleri yazması gerekmez. Tarayıcı bunu sizin için yapar.

Şöyle düşünülebilir:

  • Nesnel olmayan yöntemlerle bir işleve, formu göndermesi söylenebilir.
  • Nesnel yöntemlerle forma, kendisini göndermesi söylenir.

Eğer isternirse, aynı nesne üzerindeki birkaç yöntemi çalıştırabilirsiniz. Örneğin:

referenceToTheObject.method1().method2().method3().method1again()
Bu durumda method1 "object" sınıfını döndürür, onun yöntemi de "method2" dir vb...