Nesne Erişimcileri (Getter & Setter)
Bir nesnenin metotlarını oluştururken özellik adı vermeden doğrudan fonksiyon olarak yazabildiğimizi ifade etmiştik. Örnek.
let ogrenci = {
isim:'Asya',
soyisim:'GÜN',
no:2301,
bilgi() {
return this.isim + ' ' + this.soyisim;
},
};
alert( ogrenci.bilgi() );
Metotların başında get
kullanımı ile bir metodu özellikmiş gibi ()
koymaya gerek kalmadan erişerek metodun döndürdüğü değeri elde edebiliriz. Güzel yanı ise get
ile hesaplanan değerin haricen (nesne dışından) manipüle edilememesidir. Örnek.
let ogrenci = {
isim:'Asya',
soyisim:'GÜN',
no:2301,
get bilgi() { // get ekledik
return this.isim + ' ' + this.soyisim;
},
};
alert( ogrenci.bilgi ); // paranteze gerek kalmadı.
ogrenci.bilgi = 'JavaScript'; // haricen manipüle ettik
alert( ogrenci.bilgi ); // dışarıdan manipüle edilemez.
Metotların başında set
kullanımı ile nesne dışından bir değeri atama (=
) ile alabilir ve parametre gibi nesnede işleyebiliriz. Örnek.
let ogrenci = {
isim:'Asya',
soyisim:'GÜN',
dogumYili:2010,
yabanciDil: '',
set yabanciDilDegis(dil) { // set ekledik
this.yabanciDil = dil;
},
};
ogrenci.yabanciDilDegis = 'en'; //parametre yerine atama ile değeri aldık.
alert(ogrenci.yabanciDil);
set
kullanarak bir metoda parametre göndermek yerine atama ile parametre işledik. set
kullanmadan örnek şöyle olur.
let ogrenci = {
isim:'Asya',
soyisim:'GÜN',
dogumYili:2010,
yabanciDil: '',
yabanciDilDegis(dil) {
this.yabanciDil = dil;
},
};
ogrenci.yabanciDilDegis('en'); // atama değil parametre olarak vermek gerekti.
alert(ogrenci.yabanciDil);
Last updated