# JavaScript Prototype

Prototype bizlere diger frameworklerde bulunan extension özelligine benzeyen bir yapı sunuyor hemen kod üzerinde görelim

```
1.let insan=(name)=>{
2.this.name=name;
3.}
4.
5.let yeni_insan=new insan();
6.yeni_insan.prototype.surname_add=()=>{ return let sonuc=name+"Yıldız" ; }
7.
8.console.log(yeni_insan.__proto__.surname_add();
```

- 
Şimdi satır satır ne yaptık ve ne oldu inceleyelim 1.satırda insan adlı degişkene içerisine name adlı argüman alan fonksiyona eşitledik,bu fonksiyonun yaptıgı tek şey veriyi tutmakdır.

- 
5.satırda ise insan adlı nesnemizden new operatörü ile nesne ürettik(nesne üretme işlemini kullanılacak olan bir evrakı fotokopi cekip aslının saklayıp kopyalarını kullanmak gibi düşünebiliriz)

- 
6.satırda ise oluşturdugumuz nesneye **prototype** kullanarak extensin yani harici olarak yeni bir özellik ekledik,bu özelligimiz yaptıgı şey geriye metinsel bir ifade döndürmesidir

- 
8.satırda ise ekrana yazdırdık


> yeni_insan.sonuc  diyerek protoype içindekilere ulaşmaya çalışırsak hata verecektir
