JavaScript Nesne Prototipleri

Prototipler, JavaScript nesnelerinin özellikleri birbirlerinden miras aldıkları mekanizmadır. Bu makalede, prototip zincirlerinin nasıl çalıştığını açıklıyoruz ve prototype özelliğin mevcut kuruculara method ve özellik eklemek için nasıl kullanılabileceğine bakıyoruz.

JavaScript prototip tabanlı bir dildir, bu nedenle JavaScript kullanarak bir nesne oluşturduğumuzda, JavaScript altyapısı bir nesnenin içine bir prototip özelliği ekler, Prototype özelliği temel olarak bir nesnedir (Prototip nesnesi olarak da bilinir), bir prototip nesnesine Methodlar ve Özellikler ekleyebiliriz, bu da diğer tüm nesnelerin bu Methodlar ve Özellikleri devralmasını sağlar.

Bir nesnenin prototip nesnesi, Methodlar ve Özellikleri devraldığı bir prototip nesnesine de sahip olabilir. Bu genellikle bir prototip zinciri olarak adlandırılır ve farklı nesnelerin neden kullanılabilir diğer nesneler üzerinde tanımlanmış özelliklere ve methodlara sahip olduğunu açıklar.

JavaScript'te, nesne örneği ve prototipi (oluşturucudaki prototip özelliğinden türetilen __proto__ özelliği) arasında bir bağlantı yapılır ve özellikler ve methodlar prototype zincirinde gezinilerek bulunur.

Önceki bölümde bir nesne oluşturucunun nasıl kullanılacağını öğrendik:


function Sehir(adi, plaka, nüfus, uretim) {
  this.adi = adi;
  this.plaka = plaka;
  this.nüfus = nüfus;
  this.uretim = uretim;
}

var baskent = new Sehir("Ankara", "06", "5.5 Milyon", "Sanayi");
var tatil_sehir = new Sehir("Mersin", 33, "955 Bin", "Turizm");

console.log(baskent);
console.log(tatil_sehir);

ÇIKTI:

Object 
{
  "adi": "Ankara",
  "plaka": "06",
  "nüfus": "5.5 Milyon",
  "üretim": "Sanayi"
}
Object 
{
  "adi": "Mersin",
  "plaka": 33,
  "nüfus": "955 Bin",
  "üretim": "Turizm"
}

Varolan nesne yapıcı yeni bir özellik ekleyin:


Sehir.rakim = 938;

ÖRNEK:


function Sehir(adi, plaka, nüfus, uretim) {
  this.adi = adi;
  this.plaka = plaka;
  this.nüfus = nüfus;
  this.uretim = uretim;
}
Sehir.rakim = 938;

var baskent = new Sehir("Ankara", "06", "5.5 Milyon", "Sanayi");
var tatil_sehir = new Sehir("Mersin", 33, "955 Bin", "Turizm");

console.log(baskent.rakim);

ÇIKTI:

Yapıcı işlevine yeni bir özellik ekleyemezsiniz.

baskent.rakim undefined

Prototip Kalıtımı

Tüm JavaScript nesneleri, özellikleri ve methodları bir prototipten devralır:

Object.prototype prototip devralma zincirinin en üstündedir:

Date nesneleri, Array nesneleri ve Sehir nesneleri Object.prototype'dan devralınır.


Nesnelere Özellikler ve Methodlar Ekleme

Bazen, belirli bir türün varolan tüm nesnelerine yeni özellikler veya methodlar eklemek isteyebilirsiniz.

Bazen bir nesne yapıcısına yeni özellikler veya Methodlar eklemek istersiniz.


Prototip Özelliğini Kullanma

JavaScript prototype özelliği, nesne oluşturuculara yeni özellikler eklemenize olanak tanır:


function Sehir(adi, plaka, nüfus, üretim) {
  this.adi = adi;
  this.plaka = plaka;
  this.nüfus = nüfus;
  this.üretim = üretim;
}
Sehir.prototype.rakim = 938;

var baskent = new Sehir("Ankara", "06", "5.5 Milyon", "Sanayi");

console.log(baskent.rakim);

938

JavaScript prototype özelliği ayrıca nesne oluşturuculara yeni Methodlar eklemenize de olanak tanır:


function Sehir(adi, plaka, nüfus, uretim) {
  this.adi = adi;
  this.plaka = plaka;
  this.nüfus = nüfus;
  this.uretim = uretim;
}
Sehir.prototype.name = function() {
  return this.adi + " " + this.uretim
};

var tatil_sehir = new Sehir("Mersin", 33, "955 Bin", "Turizm");

console.log(tatil_sehir.name());

ÇIKTI:

Mersin Turizm
Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlanacaktır. Lütfen Yukarıda ki mesajları okuyun tekrar aynı soruları sormayın.

5500

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
  • Laravel
  • Git
  • React
POPÜLER MAKALE
  • HTML LİNK(Bağlantı)EKLEME - LİNK VERME
  • HTML YAZI VE RESİM ORTALAMA
  • HTML RESME LİNK VERME
  • HTML FORM OLUŞTURMA
  • CSS YATAY MENÜ YAPIMI
  • HTML RESİM EKLEME
  • CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
  • HTML DİV ve SPAN NEDİR?
  • HTML ARKAPLANA MÜZİK EKLEME
  • KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.