𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁'𝘁𝗲 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿'𝗹𝗮𝗿
Nesneleri tek tek oluşturmak yavaştır. Aynı özelliklere sahip on öğrenciye ihtiyacınız varsa, aynı kodu tekrar tekrar yazarak vakit kaybedersiniz.
JavaScript bunu Constructor Fonksiyonları ile çözer.
Bir constructor'ı bir taslak (blueprint) gibi düşünün. Bir evin taslağı evin kendisi değildir, ancak onu birçok ev inşa etmek için kullanırsınız.
Nasıl çalışır:
Bir constructor özel bir fonksiyondur. Ondan nesneler oluşturmak için new anahtar kelimesini kullanırsınız.
Örnek:
function Student(name, age, city) {
this.name = name;
this.age = age;
this.city = city;
}
const student1 = new Student("John", 21, "Chennai");
const student2 = new Student("David", 22, "Madurai");
Neden bunu kullanmalısınız?
- Zaman kazandırır.
- Kod tekrarını önler.
- Verileriniz için standart bir yapı oluşturur.
this Anahtar Kelimesinin Rolü:
Bir constructor içinde this kelimesi, oluşturduğunuz yeni nesneye atıfta bulunur.
Eğer bir öğretmen "benim sınıfım" derse, "benim" kelimesi o öğretmene işaret eder. Kodda ise this.name, az önce oluşturduğunuz belirli nesnenin adına işaret eder.
new kullandığınızda ne olur?
const emp = new Employee("John", 50000) komutunu çalıştırdığınızda dört adım gerçekleşir:
- JavaScript boş bir nesne oluşturur.
thisanahtar kelimesi bu yeni nesneye işaret eder.- Özellikler nesneye eklenir.
- Nesne size döndürülür.
Eylem Ekleme:
Nesneler sadece veri tutmakla kalmaz, aynı zamanda eylemler gerçekleştirebilirler. Programlamada bu eylemlere metotlar (methods) denir.
Örnek:
function Laptop(brand, ram) {
this.brand = brand;
this.ram = ram;
this.showDetails = function() {
console.log(this.brand, this.ram);
};
}
Laptop nesnesi artık hem verileri hem de bu verileri gösteren bir fonksiyonu tutmaktadır.
En İyi Uygulamalar:
- Bir constructor'ın ilk harfini her zaman büyük yazın.
studentdeğil,Studentkullanın. Bu, diğer geliştiricilerenewanahtar kelimesini kullanmaları gerektiğini söyler. - Her zaman
newanahtar kelimesini kullanın. Eğer unutursanız, fonksiyon normal bir fonksiyon gibi davranır ve kodunuzun bozulmasına neden olur.
Karşılaştırma:
Nesne Literalleri (Object Literals):
- Tek bir nesne için iyidir.
- Basit ve hızlıdır.
- Taslak (blueprint) yoktur.
Constructor Fonksiyonları:
- Birçok nesne için iyidir.
- Yeniden kullanılabilir ve düzenlidir.
- Taslak yaklaşımını kullanır.
Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor Full post: https://dev.to/annapoo/constructor-in-javascript-4nbm