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 Bir Sayının Faktöriyelini Bulma Örneği

JavaScript Rastgele Sayılardan En Büyük ve En Küçüğü Bulma Örneği

JavaScript 1 İle 100 Arasında 3'e Bölünebilenleri Bulma Örneği

JavaScript Sort Metodu Kullanımı

JavaScript Döngü Kullanarak Fibonacci Serisi Yazdırma Örneği