Onur Dayıbaşı

CV
none

JS Prototype Nedir ?

İlk başta en basit şekilde obje tanımlamaktan bahsetmiştik.

1const emptyObject={};
2const anotherObject=new Object();

Bu objeleri tanımladığımızda arka planda proto şeklinde objeye ait bir iskelet oluşuyor. Bu yukarıda bahsettiğimiz commonFunctions4User gibi ayrı ayrı ortak fonksiyon kümeleri oluşturmakta işleri bir çok obje olduğu zaman karıştıracaktır.

'An Empty Object'

Burda objenin kendi prototype kullanarak bu karmaşıklıkları önleyebiliriz. Artık User nesnesi yavaş yavaş istediğimiz sınıf dönüşmeye başladı. Uzun zamandır bu prototype mantığını String vb yapılarda kendi yardımcı fonksiyonları eklemek için kullanıyordum zaten (Örneğin replaceAll, capitalize vb.) İstediğim zaman kullandığım kütüphane ve nesneleri kendime göre genişletebiliyordum. Ama prototype class ve inheritance temelini oluşturduğunu bilmiyordum.

1User.prototype.sayHello=function(){
2 console.log(`My name is ${this.name} and I am ${this.age} years old.`)
3}
4function User(name,age){
5 let user=Object.create(User.prototype);
6 user.name=name;
7 user.age=age;
8 return user;
9}
10const onur=User("Onur",39);
11onur.sayHello();

Referanslar