𝗢𝗯𝗷𝗲𝗰𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿𝘀 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 -> 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁'𝘁𝗲 𝗢𝗯𝗷𝗲𝗰𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿𝘀
Aynı türden birçok nesne oluşturmanız gerekir. JavaScript bunu verimli bir şekilde yapmanın birkaç yolunu sunar.
Yapıcı Fonksiyonlar (Constructor Functions)
Yapıcı (constructor), yeni nesneler kurmak için kullanılan bir fonksiyondur. Hatalardan kaçınmak için şu kuralları uygulayın:
- Fonksiyon adının ilk harfini büyük yazın. Bu, onu bir yapıcı olarak tanımlamanıza yardımcı olur.
newanahtar kelimesini kullanın. Bunu unutursanız, fonksiyon normal bir fonksiyon gibi çalışır ve nesneyi oluşturamaz.
Varsayılan Değerler
Yapıcınızda varsayılan değerler belirleyebilirsiniz. Bu, bazı ayrıntıları atlatsanız bile nesnelerinizin geçerli kalmasını sağlar.
Örnek: function Person(name = "Unknown", age = 0) { this.name = name; this.age = age; }
Eğer new Person() çağırırsanız, isim "Unknown" ve yaş 0 olur.
Object.create()
Mevcut bir nesneye dayalı yeni bir nesne oluşturmak için Object.create() kullanabilirsiniz. Bu, prototip tabanlı kalıtımı kullanır. Verileri kopyalamak yerine, yeni nesne orijinal prototipe bağlanır.
Bellek Optimizasyonu
Metotları doğrudan yapıcının içine koymayın. Eğer koyarsanız, her yeni nesne o metodun kendi kopyasına sahip olur. Bu, bellek israfına yol açar.
Bunun yerine, metotları prototipe ekleyin. Bu sayede tüm nesneler metodun tek bir sürümünü paylaşır.
Örnek: Person.prototype.greet = function() { console.log("Hello " + this.name); };
Kalıtım (Inheritance)
Sınıflar (Classes), bir sınıfın diğerinden kalıtım almasına olanak tanır. Üst sınıfın yapıcısını çağırmak için bir alt sınıfta super() anahtar kelimesini kullanın. Bu, alt sınıfın üst sınıftaki özelliklere erişmesini sağlar.
Yapıcıları kullanmanın faydaları:
- Yeniden kullanılabilir kod: Tek bir kalıpla birçok nesne oluşturun.
- Temiz mantık: Nesne kurulumunu tek bir yerde tutun.
- Kolay başlatma: Oluşturma sırasında belirli değerler atayın.
- Kalıtım: Karmaşık nesneleri daha basit olanlardan inşa edin.
Kaynak: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Kaynak: https://www.w3schools.com/js/js_object_constructors.asp
Tam yazı: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96