JavaScript get ve set kullanımı

JavaScript OOP veya Nesne Yönelimli Programlama yaparken kullanılan get ve set metotları ile ilgili bilgiler yer alıyor.

JavaScript ile bir değişkene dolaylı olarak değer atamak veya değerini almak için get ve set metotları kullanılır.

JavaScript Private Değişkenler yazımda get ve set metotlarını kendimiz yazdık.

JavaScript Object.defineProperty ile tanımlanmış değişkenlere ayrıca get ve set metotlarını tanımlayabiliriz.

JavaScript Object.defineProperty ile tanımlanmış bir değişkene değer atadığımızda set metodunu, değişkenin değerini okumaya çalıştığımızda get metodunu çağırır.

<script>
"use strict";
  var kisiBilgi = {
    _ad: ""  // private değişken
  };

  Object.defineProperty(kisiBilgi , "ADI", {
    get: function() {
      return "Benim adım " + this.ad;
    },
    set: function(yeniDeger) {
      this.ad = yeniDeger;
    }
  });

kisiBilgi.ADI = "Yusuf";

console.log(kisiBilgi.ADI);  // Benim adım Yusuf
</script>

Get ve set metotlarını alt çizgi notasyonu ile private olarak kabul ettiğimiz değişkenlere dolaylı değer atama için veya değişken değerini belirli bir hesap sonucunu saklamak için kullanabiliriz.

Örneğin; Bir kişinin yaşını, doğum tarihi bilgisini alıp bir takım işlemler yaptıktan sonra yaşını bulup gerekli değişkene atayabiliriz.

<script>
"use strict";
  var kisiBilgi = {
    _ad: "", // private değişken
    _yas: 0  // private değişken
  };

  Object.defineProperties(kisiBilgi, {
    "ADI": {
      get: function() {
        return "Benim adım " + this.ad;
    },
      set: function(yeniDeger) {
        this.ad = yeniDeger;
    }
    },
     "YASI": {
      get: function() {
        return this._yas + " yaşındayım";
    },
      set: function(dogumTarihi) {
        this._yas = new Date().getFullYear() - dogumTarihi;
    }
    }
  });

kisiBilgi.ADI = "Yusuf";
kisiBilgi.YASI = 1970;

console.log(kisiBilgi.ADI);
console.log(kisiBilgi.YASI);
</script>

Örnekte birden fazla özellik eklemek için Object.defineProperties metodu kullanılmıştır.

YASI özelliği set metodu dogumTarihi bilgisini parametre alarak şu anki yıldan dogumTarihi ile girilen yılı çıkartarak yaşını hesaplar.

Hesaplama sonucunda bulunan değeri _yas değişkenine atar.

JavaScript Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!