Nesneye dayalı programlama dillerinden de aşina olduğumuz class kavramı artık Ecmascript6 ile birlikte javacript tarafında daha kolay ve okunaklı bir yapı sunuyor. ES6 öncesi standartlarda bir nesne üretmek istediğimiz zaman constructor fonksiyonları oluşturuyorduk. Bu oluşturduğumuz objelerden kalıtım yolu ile yeni objeler oluşturmak istediğimiz zaman ise prototype metotlarından yararlanıyorduk. ES6 class kavramı bizlere OOP presiplerini daha verimli ve kolay bir şekilde kullanma olanağı sunuyor.
ES6 class kavramına geçmeden, önceki standartlarda yeni bir obje üretmek için neler yapıyoduk inceleyelim:
1 | // Yapıcı metot fonksiyonumuzu tanımlayarak Student ismini verdiğimiz değişkene atıyoruz. |
Burada yapıcı metodumuzun içerisine istediğimiz amaçla bir metot oluşturabiliriz. Fakat ürettiğimiz her bir örnekte bu fonksiyon da oluşturulacağından bellek kullanımı konusunda pek mantıklı bir seçim olmayacaktır. Bunun yerine oluşturduğumuz Student objesinin prototype özelliğine ulaşarak, oluşturacağımız metodu burada tanımlayabiliriz. Bunun amacı Student objesinden üretilen her bir örneğin, sadece gerekli olduğu zamanlarda bu metoda erişerek bellekte gereksiz metot tanımının önüne geçmektir.
1 | Student.prototype.bilgileriYazdir = function () { |
Şimdi ES6’ın bize sunduğu Class kavramını inceleyelim:
Sınıf tanımlamaları “class” anahtar kelimesi ile tanımlanır. Class bir isimle tanımlanacağı gibi isimsiz şekilde tanımlanıp bir değişkene de atanabilir.
1 | const Personel = class { |
Sınıfımızın içerisine yazdığımız constructor, ilgili sınıf çağrıldığı an çalışır ve gönderdiğimiz gerekli parametrelerin değişkenlere aktarılmasını sağlar.
1 | const Personel = class { |
Metot tanımlamalarımızı ilgili sınıf içerisinde tanımlarız.
1 | const Personel = class { |
Şimdi de bir önceki örneğimizi ES6 Class kavramı ile yeniden yazalım:
1 | const Student = class { |
Comments