JAVASCRIPT’IN TARIHÇESI

JS Proposal Class Fields

Onur Dayıbaşı
Frontend Development With JS
2 min readJul 31, 2021

--

JS Dilinin Gelişimi Proposal üzerinden gerçekleşiyor. TC39 ekinin üzerinden yeni proposal ile ES her yıl yeni Versiyonlar ile ortaya çıkıyor. Aşağıdaki bu kavramların ne olduğundan kısaca bahsettim.

  • TC39: ES Geliştirmekten sorumlu olan komite içerisinde Tarayıcı geliştiricileri ve Web ile ilgili önemli şirketlerden birçok üyesi bulunmaktadır.
  • EcmaScript (ES): JavaScript’in temelini oluşturan standarttır. Ve ilk olarak Tarayıcılar üzerinde çalışan bir dil olarak ortaya çıktığı için ilk çıkışında bu standart içerisinde Flash’ın ActionScript, Microsoft’un JScript barındırmaktaydı. Fakat sonrasında diğer dillerin iyi özellikler JavaScript eklenerek kendileri ortadan kalktı.
  • Versiyon: Her sene genelde Haziran ayında ES yeni bir versiyonu çıkıyor ve her sene bir sonraki numarayı alarak isimlendiriliyor Örneğin 2015 yılında duyurulan dil özellikleri ES6 , 2016 çıkarılan dil özellikleri ES7 yani bu yıl 2019 çıkan dil özellikleri ES10 olarak isimlendirilmektedir.

Gelelim bu yazının konusu olan Proposal Class Fields konusuna. Class tanımlamalarında this kullanarak property kullanmak, veya function context bind ile bağlamak konularından önceden bahsetmiştik. Bu konularda aşağıdaki yazılar okunabilir.

Şimdi gelelim konumuza

  • constructor kurtulmaya çalışıyoruz.
  • handleClick binds yerine arrow function kullanılıyoruz
  • state tanımlamasını sınıfın içerisinde direk this.state demeden yapıyoruz.
  • propTypes tanımlamasını sınıfın dışında değilde içerisinde static olarak yapabiliyoruz.
Bileşene Class Fields uygulanmış hali.

Yukarıdaki resimde görüleceği gibi Bileşenimiz kod satır sayısı oldukça küçüldü. Ama Hooks da daha fazla zipping(işlemi) gerçekleşiyor.

Birde Private Field olarak kullanmak isteyebiliriz. Private field sınıf içerisindeki methodlar dışında dışarıdan erişelemeyecek anlamına geliyor.

Public ve Private Fields

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--