𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀
Bir yapıcı fonksiyon (constructor function), nesneler için bir taslaktır. Aynı yapıya sahip birçok nesne oluşturmak için bunu kullanın.
Nasıl çalışır:
Bir yapıcı fonksiyonu çağırmak için new anahtar kelimesini kullanırsınız. Bu işlem dört şey yapar:
- Boş bir nesne oluşturur.
thisifadesini bu yeni nesneyi işaret edecek şekilde ayarlar.- Fonksiyonun içindeki kodu yürütür.
- Yeni nesneyi döndürür.
Örnek kod:
function Employee(name, salary) {
this.name = name;
this.salary = salary;
}
const emp1 = new Employee("Saravanan", 50000);
Uyulması gereken kurallar:
- Fonksiyon isimlerini büyük harfle başlatın.
- Yeni nesneye özellik atamak için
thiskullanın.
this ifadesinin rolü:
Bir yapıcı fonksiyonun içinde this, oluşturduğunuz belirli nesneye atıfta bulunur. Örneğin, this.name = name ifadesi, parametre değerini nesne özelliğine atar.
Metot ekleme:
Her nesnenin kullanabilmesi için bir yapıcı fonksiyonun içine fonksiyonlar ekleyebilirsiniz.
function Employee(name, salary) {
this.name = name;
this.salary = salary;
this.displayInfo = function() {
console.log(this.name + " earns " + this.salary);
};
}
Bellek verimliliği:
Metotları doğrudan yapıcı fonksiyona eklerseniz, her nesne kendi kopyasına sahip olur. Bu, daha fazla bellek kullanılmasına neden olur.
Bunun yerine prototype kullanın. Prototype'a bir metot eklemek, tüm nesneler arasında tek bir kopyanın paylaşılmasını sağlar.
Employee.prototype.greet = function() {
console.log("Hello " + this.name);
};
Özet:
- Tek bir nesne için nesne belirteçlerini (object literals) kullanın.
- Aynı yapıya sahip birden fazla nesne için yapıcı fonksiyonları kullanın.
Kaynak: https://www.w3schools.com/js/js_object_constructors.asp Kaynak: https://www.geeksforgeeks.org/javascript/javascript-function-constructor/ Kaynak: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
Post linki: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k