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