JavaScript prototype Kullanımı

JavaScript "prototype" özelliği, bir sınıf veya nesnenin özelliklerini ve metodlarını eklemek veya değiştirmek için kullanılır. Bu özellik, bir sınıf veya nesnenin temel yapısını değiştirmek yerine, onun üzerine ek özellikler ve metodlar eklemek içindir.

Örneğin, bir "Kisi" sınıfı oluşturalım ve bu sınıfın "ad" ve "yas" özellikleri olsun. Ayrıca, bu sınıfın "Selam" isimli birde metodu olsun. Aşağıdaki kod, "Kisi" sınıfını, bu sınıfın özelliklerini ve metodlarını gösterir..

class Kisi
{
    constructor(ad, yas) 
    {
        this.ad = ad;
        this.yas = yas;
    }

    Selam() 
    {
        console.log(`Selam, benim adım ${this.ad} ve yaşım ${this.yas}.`);
    }
}

Bu sınıfı kullanarak bir nesne oluşturalım ve özelliklerini ve metodunu kullanalım..

let kisi1 = new Kisi("Jale", 33);
console.log(kisi1.ad); // "Jale"
console.log(kisi1.yas); // 33
kisi1.Selam(); // ""Selam, benim adım Jale ve yaşım 33.""

Ancak, eklemek istediğimiz bir özellik veya metod varsa, prototype özelliğini kullanabiliriz. Örneğin, "Kisi" sınıfına "adres" özelliği eklemek istiyoruz. Aşağıdaki kodu kullanabiliriz...

Kisi.prototype.adres = "";

Bu kod, "Kisi" sınıfına "adres" özelliği ekler. Bu özellik, tüm "Kisi" nesnelerine uygulanır. Ayrıca, bu sınıfına bir de metod eklemek istiyorsak aşağıdaki gibi bir kod yazabiliriz.

Kisi.prototype.setAdres = function(adres) {
    this.adres = adres;
}

Son olarak test edelim..

Kisi.prototype.adres = "Varsayılan Adres";
console.log(kisi1.adres); //Varsayılan Adres

kisi1.setAdres("Değişmiş adres");
console.log(kisi1.adres); //Değişmiş adres

Yukarıdaki örnekte ilk önce adres değişkenimize "Varsayılan Adres" değerini atadık. Sonrada bu değişkenin değerini "setAdres()" fonksiyonu ile değiştirdik. değişkenimiz ve fonksiyonumuz "Kisi" sınıfı yaratıldığında mevcut değildi. 2 sinide "prototype" ile sonrada sınıfımıza dahil ettik ve kullandık.

Tüm koda aşağıdan ulaşabilirsiniz..

class Kisi
{
    constructor(ad, yas) 
    {
        this.ad = ad;
        this.yas = yas;
    }

    Selam() 
    {
        console.log(`Selam, benim adım ${this.ad} ve yaşım ${this.yas}.`);
    }
}

let kisi1 = new Kisi("Jale", 33);
console.log(kisi1.ad); // "Jale"
console.log(kisi1.yas); // 33
kisi1.Selam(); // ""Selam, benim adım Jale ve yaşım 33.""

Kisi.prototype.adres = "Varsayılan Adres";
console.log(kisi1.adres); //Varsayılan Adres

Kisi.prototype.setAdres = function(adres) {
    this.adres = adres;
}

kisi1.setAdres("Değişmiş adres");
console.log(kisi1.adres); //Değişmiş adres

Javascript'de prototype özelliği, bir sınıf veya nesnenin özelliklerini ve metodlarını eklemek veya değiştirmek için kullanılır. Bu sayede, sınıflar ve nesneler arasında kalıtım sağlanır ve aynı özellikler ve metodlar, birden fazla nesne veya sınıf tarafından kullanılabilir.

Ayrıca, prototype özelliği, JavaScript'in önyükleme (overriding) mekanizmasını kullanarak sınıf veya nesnenin özelliklerini ve metodlarını değiştirmek için de kullanılabilir. Örneğin, bir sınıfın metodunu kalıtım alan bir sınıf tarafından yeniden tanımlanarak değiştirmek mümkündür.

Sonuç olarak "prototype" özelliği ile kodun daha okunaklı, daha anlaşılır ve daha modüler hale gelmesini sağlamak mümkündür.



İlginizi Çekebilir

JavaScript Sort Metodu Kullanımı

JavaScript Math.sin Kullanımı

JavaScript Bir Stringdeki Her Karakterin Sayısını Bulma Örneği

JavaScript 1'den 100'e Kadar Asal Sayı Toplam Örneği

JavaScript Dört İşlem Yapan Örnek