JavaScript programlama dilinde 5 tane veri tipi ve 3 tane referansı ifade eden Object tipi vardır. Veri tipleri Number, String, Boolean, Undefined, ve Null(bu da bir obje)dir. fonksiyon, dizi, nesne (object) gibi refrensları ifade eden Object tipler bulunmaktadır.
Javascript ile çeşitli yöntemler kullanarak nesne oluşturmak mümkündür. Bu yöntemlerde bir kaç tanesini örnekler ile açıklanmıştır.
1-JavaScriptte nesne oluşturmak için {} sembolleri kullanılır.
1 2 3 |
var Personel={}; |
bu şekilde içinde hiç birşey olmayan adı Personel olan bir Nesne oluşturduk.
Oluşturulan nesneye bir kaç tane özellik ataması yapalım. Personelin adı,soyad, telefon numarası ve günlük ücreti olsun. Bunları nesneye eklemek için özellik : değeri şekilinde kullanacağız.
Eğer birden fazla özellik yada metod tanımlaması yapılacaksa her bir değer arasına virgül ( , ) sembolü konulmalıdır.
1 2 3 4 5 6 7 8 |
var Personel = { ad:"Ali", soyad:"BAK", telefon:"715 400 40 40", ucret:100 } |
Metod tanımlaması yapmak içinse yine özellik : değeri gibi kullanılarak, özellik : fonksiyon şeklinde tanımlanmaktadır. Burada JS ile anonim fonksiyon tanımlaması yapılmaktadır. Eğer Nesne tanımlaması yapılırken özelliklerden biri metod içinde kullanılacaksa (örnekte ödeme hesaplamak için ücreti kullanacağız.) nesne içindeki özellik için this anahtar kelimesi kullanılır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var Personel = { ad:"Ali", soyad:"BAK", telefon:"715 400 40 40", ucret:100, ucretOde:function(gun){ return gun*ucret; } } |
[divider]
Aşağıda da farklı bir örnek ele alınmıştır. Kodları kopyalayıp, HTML belgesi oluşturarak kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<script> var Ogrenci={ ad:"Ali", soyad:"Al", adSoyad:function(){ return this.ad+" "+this.soyad; } } document.write(Ogrenci.adSoyad()); </script> |
this anahtarı nesne içindeki parçalara(ozellik,metod) ulaşmak için kullanılır.
[divider]Fonksiyon gibi oluşturarak Nesne Oluşturulacaktır.(JavaScript dilinde fonksiyonlar da Nesnedir)
2-) Başka bir JavaScript nesnesi oluşturma yöntemi de constructor pattern(yapıcı desen) olarak tanımlamak mümkündür. Fonksiyon tanımlama yöntemi ile sınıf oluşturup, oluşturulan sınıf new anahtarı ile nesne olarak türetilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<script> /*function Uye(){ şeklinde de tanımlamak mümkün*/ var Uye=function(){ this.isim; this.soyisim; this.adSoyad=function(){ return this.isim+" "+this.soyisim; } } var Uye1=new Uye(); var Uye2=new Uye(); Uye1.isim="Hayri"; Uye1.soyisim="KOÇ"; Uye2.isim="Hüseyin"; Uye2.soyisim="ÖZ"; document.write(Uye1.adSoyad()); document.write("<br>"); document.write(Uye2.adSoyad()); </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<script> var Uye=function(){ /* var anahtarı ile fonksiyon içinde tanımlanmıştır. fonksiyon dışında çağırma şansımız yok Uye.isim olarak çağıramayız. Sadece this.degiskenadi şeklinde yapılan bildirimler dışarıdan çağırır. */ var isim; var soyisim; this.yas=18; /*fonksiyon içinde tanımlanan isim değişkenine dışarıdan değer aktarmak için kullanılır. setter metodu*/ this.setIsim=function(v) { isim=v; } /*fonksiyon içinde tanımlanan isim değişkenindeki değeri okumak için kullanılır. getter metodu*/ this.getIsim=function() { return isim; } this.setSoyisim=function(v) { soyisim=v; } /*sınıf içinde tanımlanmış bir fonksyion*/ this.adSoyad=function(){ return isim+" "+soyisim; } } var Uye1=new Uye(); Uye1.setIsim("hayri"); Uye1.setSoyisim("KOÇ"); /*this anahtarı ile tanımlanan değişken doğrudan çarılıyor.*/ Uye1.yas=20; document.write(Uye1.adSoyad()); document.write("<br>"); document.write(Uye1.getIsim()+" "); document.write("<br>"); document.write(Uye1.yas); </script> |
[…] JavaScript dilinde her fonksiyon bir nesnedir. […]
[…] JavaScript Dersleri 18: Nesne Oluşturma […]
[…] içinde nesne nesne özelliklerine ulaşmak için kullanılır. Eğer JavaScript nesne oluşturma hakkında fazla bir fikriniz yoksa bu yazıyı anlamakta zorluk çekebilirsiniz. JavaScriptte […]