Her JavaScript nesnesi bir prototip vardır. Prototip da bir nesnedir.
Tüm JavaScript nesneleri kendi prototip gelen özellik ve yöntemlerini devralır.
JavaScript prototipleri
Tüm JavaScript nesneleri kendi prototip gelen özelliklerini ve yöntemlerini devralır.
Nesneler bir nesne değişmezi kullanarak oluşturulan veya birlikte new Object() , Object.prototype adında bir prototip devralır.
Ile oluşturulan nesneler new Date() Date.prototype devralır.
Object.prototype prototip zincirinin tepesinde yer almaktadır.
Tüm JavaScript nesneleri (Date, Array, RegExp, Function, ....) devralan Object.prototype .
Bir prototip oluşturma
Bir nesne prototipini oluşturmak için standart yolu bir nesne yapıcı işlevini kullanmaktır:
Örnek
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Bir yapıcı işlevi sayesinde, kullanabileceğiniz new aynı prototip gelen yeni nesneler oluşturmak için anahtar kelime:
Örnek
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Kendin dene " Yapıcı işlevi prototipi Person nesneler.
Bir harf ilk harfi ile isim yapıcı işlevine iyi bir uygulama olarak kabul edilir.
Nesneler Özellikler 've Yöntemleri ekleme
Bazen yeni özellikler eklemek istediğiniz (or methods) mevcut bir nesneye.
Bazen yeni özellikler eklemek istediğiniz (or methods) , belirli bir türdeki tüm mevcut nesnelere.
Bazen yeni özellikler eklemek istediğiniz (or methods) bir nesne prototip.
Bir nesne için bir özellik ekleme
Varolan bir nesneye yeni bir özellik eklemek kolaydır:
Mülkiyet eklenecektir myFather . Not to myMother . Değil başka bir kişi nesnelere.
Bir nesne için bir Yöntem Ekleme
olan bir nesneye yeni bir yöntem eklemek de kolaydır:
Yöntem eklenecektir myFather . Not to myMother .
Prototip için Özellikler ekleme
Prototip varolan nesne değil, çünkü varolan bir nesneye yeni bir özellik eklemek gibi bir prototip aynı şekilde yeni bir özellik ekleyemezsiniz.
Bir kurucusuna yeni bir özellik eklemek için, yapıcı işlevine eklemek gerekir:
Örnek
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
Kendin dene " Prototip özellikleri prototip değerlerine sahip olabilir (default values) .
Prototip için Yöntemleri ekleme
Sizin yapıcı işlevi de yöntemlerini tanımlayabilirsiniz:
Örnek
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
Kendin dene " Kullanılması prototype Mülkiyet
JavaScript prototype özelliği varolan prototip yeni özellikler eklemenizi sağlar:
Örnek
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Kendin dene " JavaScript prototip özelliği de varolan bir prototip yeni yöntemler eklemenizi sağlar:
Örnek
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
Kendin dene " Sadece kendi prototipler değiştirin. standart JavaScript Nesnelerin prototiplerinin değişiklik yapmayın.