JavaScript Prototype Kullanımı

JavaScript dilindeki tüm nesneler ve fonksiyonlar prototype özelliğine sahiptir, prototype metodlarını ve özelliklerini kalıtım alır. Kalıtım aldıkları nesne ise Object.prototype nesnesidir.

Eğer önceki yazıyı okuduysanız JavaScript Kurucu Fonksiyonu, o yazıda nesne oluşturan kurucu fonksiyon içerisine Car.model = 2010; şeklinde özellik eklenemeyeceğini belirtmiştik. Ancak prototype özelliği sayesinde kurucu fonksiyonlara yeni özellikler ve metodlar ekleyebiliriz. model özelliğini kodun devamında şu şekilde Car.prototype.model = 2010; ekleyip kullanabiliriz.

Prototype kullanımındaki amaç?

"Ne gerek var? Kurucu fonksiyon ile zaten bunları yapabiliyoruz." diyor olabilirsiniz. Ancak durum tam olarak öyle değil. Prototype kullanımının en önemli avantajlarından biri performans. Mesela kurucu fonksiyon içerisinde yer alan nesne metodunu düşünelim. Her nesne oluşturulduğunda, kurucu fonksiyon içerisinde yer alan fonksiyonda tekrar oluşturulacaktır. Ancak prototype kullanırsak yeni bir nesne oluşturulduğunda tekrar o nesne için metod oluşturulması gerekmez. Kısacası yüzlerce nesne için bir kere oluşturulan prototype tanımlı fonksiyon yeterlidir. Aşağıdaki örneği inceleyelim:
function Car(brand, speed){
    this.brand = brand;
    this.speed = speed;
}

Car.prototype.info = function(){
    console.log(this.brand + "\n" + this.speed + "km/h");
}

Hiç yorum yok:

Yorum Gönderme