JavaScript Nesneler ve Prototype’lar

 

Merhaba dostlar, bugün sizinle JavaScript object’lerinin prototype özelliğinden bahsedeceğiz. Bu şekilde bir sonraki yazacağım yazıda anlatacağım linked list‘ler konusuna referans sağlayabilmiş olacağım. Hemen başlayalım.

Yapıcı metodları hepimiz biliyoruz, objelerin özelliklerini tayin etmede kullandığımız fonksiyonlar.Yapıcı fonksiyonların ana amacı ise aynı özelliklere sahip birden fazla object(nesne) oluşturmak istediğimiz zaman bize aynı bir taslak gibi yardımcı olması.

1
2
3
4
5
6
7
8
9
function pc(model, cpu, gpu, ram) {

this.modelName = model;
this.CPUModel = cpu;
this.GPUModel = gpu;
this.RAMSize = ram;
}
var Dell = new pc("alienware", "i7", "gtx1080", "32gb");
var Asus = new pc("ultrabook", "i7", "gtx1050", "16gb");

Yukarıda pc adlı bir object yapıcı fonksiyonu oluşturduk, yapıcımızın 4 tane özelliği var(model adı, cpu, gpu, ram). Kodumuzun altında ise yapıcı fonksiyonu kullanarak yeni iki tane nesne oluşturabildik.

Nesneler ve nesne yapıcıların üstünden kısa bir şekilde geçtikten sonra asıl konumuz olan prototype özelliğinden bahsetmeye başlayalım.

Örneğin yukarıdaki yapıcı fonksiyona yeni bir özellik veya fonksiyon eklemek isteseydik, mesela SSDSize diye yeni bir özellik eklemek isteyelim, bu yeni özelliği ekleyebilmemizin yolu; nesnelerin sahip olduğu prototype fonksiyonunu kullanmak. Nasıl yapıldığına bakalım:

 

Nesne yapıcısına yeni özellik eklemek:

1
2
3
4
5
6
7
8
9
function pc(model, cpu, gpu, ram) {

this.modelName = model;
this.CPUModel = cpu;
this.GPUModel = gpu;
this.RAMSize = ram;
}

pc.prototype.SSDSize = "512gb"

pc” adlı yapıcı fonksiyonuna “SSDSize” diye yeni bir özellik kazandırdık ve değerini de “512gb” koyduk. Artık yeni bir nesne üretmek istediğimizde;

1
var HP = new pc("omen", "i7", "gtx1070", "16gb");

yazmamız yeterli, nesnemize SSDSize özelliği otomatik olarak eklenmiş olacak. Sonrasında ise HP.SSDSize diyerek çağırabiliyoruz “HP” nesnemizin SSDSize değerini.

 

Nesne yapıcısına yeni fonksiyon eklemek:

1
2
3
4
5
6
7
8
9
10
11
12
function pc(model, cpu, gpu, ram) {

this.modelName = model;
this.CPUModel = cpu;
this.GPUModel = gpu;
this.RAMSize = ram;
}

pc.prototype.newFunction = function(){

console.log(this.GPUModel + "'lu bir bilgisayar ile oyun oynayabilir ve işlerinizi halledebilirsiniz.");
}

Yukarıdaki kod ile ise nesne yapıcımıza “newFunction” adında yeni bir fonksiyon eklemiş olduk, örneğimizde çok önemli bir iş yaptırmadık fonksiyona ama olsun, orada olması ve yapabiliyor olmamız ileri ki konularımızda bize yardımcı olacak.

Dostlar, bugün nesnelerin prototype özelliğinden bahsettik. Bu konuyu açmamın sebebi ise yukarıda da belirttiğim gibi ileride veri yapılarında ilerlerken ihtiyacımıza hizmet edecek olması. Şimdilik kendinize iyi bakın.

ahmet

Ahmet Kılınç - Software Developer

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.