JS için En İyi Getter ve Setter Klavuzu
Getters ve setters, değişken değerlerini almak ve atamak için kullanılan işlev veya yöntemdir diyebiliriz. Getter-setter kavramı bilgisayar programlamasında yaygın: neredeyse tüm üst düzey programlama dilleri, JS dahil olmak üzere, getter ve setter için bir syntax ile gelir.
Bu makalede JS’te getter ve setter kullanımını ve nasıl yapılacağını anlatacağım.
Encapsulation Nedir?
Encapsulation, Türkçe’ye çevirecek olursak kapsülleme anlamına gelir. Eğer nesneye dayalı bir programlama dili öğrenmişseniz bu ifadeyi duymuşsunuzdur. Öncelikle bu terimden bahsedip getter setter metotlarına bağlayacağım. Öncelikle program yazarken bazı özellik ve işlevlerin kullanıcılardan saklanması gerekebilir. Yani günlük hayattan bir örnek verelim ve daha iyi anlayalım. Kapsüllemeyi bir telefona benzetebiliriz. Telefon düğmeleri bu durumda ortada ancak telefonun içindeki bir çok parça gizlidir. Kullanıcının sadece tuşlara basılması istenir. Kapsüllemeyi buna benzetebiliriz. Kapsülleme programcıya nesneleri koruma gücünü verir.
Bu durumdan dolayı getter ve setter metotları ortaya çıkmıştır. Gizli bir değişkene veri yazmak için setter, veri okumak için getter metodu kullanılır.
JavaScript Getters ve Setters
1. Metotlarla Oluşturma
Getter ve setter temelde bir bilgiyi getiren ve değiştiren işlevlerdir. Bunları oluşturmak ve kullanmak için birden fazla yöntem vardır. Birincisi :
Bu getter ve setter oluşturmanın en basit yoludur. setFoo ile değer atadık, getFoo ile değeri getirdik.
2. Anahtar kelimelerle Oluşturma
Getter ve setter oluşturmak için get ve set anahtarlarını kullanarak oluşturmaktır.
Bir getter oluşturmak için get anahtar kelimesini, setter oluşturmak için set anahtar kelimesini kullanabilirsiniz. Syntax aşağıdaki gibidir:
Sizce hangisi daha iyi?
Metotlarla mı yoksa anahtar kelimeleri mi kullanmak daha iyi? Metot kullanırken bazı sıkıntılar yaşayabilirsiniz. Metot adını başka bir metotla karıştırabilir veya yanlış bir değer atayarak verileri karıştırabilirsiniz. Anahtar kelime yöntemini kullanmak daha sağlam olduğunu söyleyelim.
Üzerine yazmanın önlenmesi
Eğer bir nedenden dolayı ilk tekniği tercih ediyorsanız, getter-setter yöntemlerini Object.defineProperties kullanarak oluşturarak salt okunur nitelikte yapın. Object.defineProperties, Object.defineProperty ve Reflect.defineProperty aracılığıyla oluşturulan özellikler, salt okunur anlamına gelen “writable: false” olarak otomatik yapılandırılır.
Getter ve Setter içinde yapılan işlemler
Getter ve setter ‘leri ayarladıktan sonra istersek bazi işlemlerden geçirebiliriz.
Örneğin aşağıdaki kodda ilk olarak n değişkenine 67 atanıyor. getter kullandığımızda sonuç The ID is: 67 olarak dönüyor. Bunu set metoduyla 893 olarak değiştiriyoruz. Set’in içinde yazdığımız if kısmında eğer gelen değer numaraysa n değerini gelen numaraya eşitle ancak numara değilse hiçbir şey yapma gibi kural oluşturduk. Nesnemize hello metni gönderdiğimizde sonuç değişmedi ve The ID is: 893 döndürdü.
Ne zaman getters ve setters’ı kullanılır?
Eğer yaptığınız projede verileri saklamanız gerekiyorsa getter ve setter ‘leri kullanmak zorundasınız. Belki ilk görüşte çok kolay gelmeyebilir. Ancak işin mantığını kavradıktan sonra getter ve setter’ler çok kullanışlıdır. Kullanmanızı tavsiye ederim.
Bu makalede Javascript ile getter ve setter ‘lerin nasıl kullanıldığından bahsettik. Bu konu hakkındaki düşüncelerinizi yorum yaparak bizlerle paylaşabilirsiniz.
3 Yorumlar
Güzel anlatmışsınız. Teşekkür ederim.
Çok iyi anlatmışsın, emeğine sağlık dostum.
Teşekkürler bende oturdu mantık!