Onur Dayıbaşı

CV
none

JS Object Nedir ?

Kalıtımı anlatmadan önce Javascript’te Objenin nasıl tanımlandığını anlamamız gerekir. Boş bir objeyi aşağıdaki 2 şekildede tanımlarız. 2 tanımda aynıdır.

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

Aşağıdaki objemisin içerisine isim ve yas değişken olarak tutmak isteyelim. Daha nesneyi tanımlarken JSON şeklinde tanımlayabiliriz.

1const onurObj={isim:”onur”, yas:12};

veya boş bir obje oluşturup ona .degiskenIsmi ile değişken değerlerimizi atayabiliriz.

1const onurObj2={}
2onurObj.isim=”Onur”
3onurObj.yas=39

veya bir map objesi gibi [“degiskenIsmi”] erişerek atama yaparız.

1const onurObj={}
2onurObj[“isim”]=”Onur”
3onurObj[“yas”]=39

Eğer amacımız tek bir obje oluşturup bunu kullanmak ise yukarıda bahsettiğimiz yöntemler oldukça kullanışlıdır. Fakat amacınız bunun gibi bir çok benzer obje oluşturmak ise örneğin ali, veli, ahmet, ayşe vb.. alt alta bu kodları tekrar tekrar kopyalamamız anlamına gelirki bu istediğimiz bir şey değildir. burda aklımıza bu nesneleri soyutlayacak bir Function Constructor oluşturabiliriz

Aşağıdaki örnekte kullanıcı(User) olarak bir fonksiyon yazıyorum ve bu fonksiyon parametrelerinde değişkenleri alıyor. Bu soyutlama sayesinde kod tekrarından kurtuluyoruz.

1function User(name,age){
2 let user={};
3 user.name=name; user.age=age;
4 return user;
5}
6const onurObj=User("Onur",39);
7const denizObj=User("Deniz",8);

Object.values()

Objenin içerisindeki nesnenin kendi değerleri array olarak döndürür.

1const me={ name:"Onur", age:39, height:180}
2console.log(Object.values(me)); //["Onur",39,180]
3const names=['Onur','Ali','Veli'];
4console.log(Object.values(names)); //['Onur','Ali','Veli']

Object.entries()

Objenin içerisindeki nesnenin kendi değerleri [key,value] array olarak döndürür.

1const me={ name:"Onur", age:39, height:180}
2console.log(Object.entries(me)); //[{"name":"Onur"},...]
3const names=['Onur','Ali','Veli'];
4console.log(Object.entries(names)); //[{0:'Onur'},...]

Object.fromEntries()

Entries üzerinden nesne klonu oluşturmak için kullanılır.

1const me={ name:"Onur", age:39, height:180}
2const entries=Object.entries(me);
3console.log(entries); //[{"name":"Onur"},...]
4const meClone=Object.fromEntries(entries)
5console.log(meClone)

Object.getOwnPropertyDescriptor()

Objenin property değerinin özellikleri value, writable, configurable, enumerable, get, set hakkında bilgi verir.

1const me={ name:"Onur", age:39, height:180}
2console.log(Object.getOwnPropertyDescriptor(me,'age'));
3//{value:39,writable:true,enumerable:true,configurable:true}

Object.is()

Değerleri karşılaştırmak için geliştirilmiş bir fonksiyondur ve aşağıdaki durumlar haricinde değeri hep false döner Örneğin 0 ve -0 için false döner.

1aynı nesne olmalı.
2String veya Number değerleri aynı olmalı
3true, false, undefined, null, NaN değerleri aynı olmalı

Object.assign()

Objenin shallow copy oluşturmanızı sağlar. Bu konuyu şu yazımda detaylıca anlatmıştım

1const copied = Object.assign({}, original)

Object.setPrototypeOf()

Objeye prototype atamasını gerçekleştirir. Bu sayede parent nesnesine assign ettikten sonra ondan türeyen daha detay bir objeyide setPrototype ile assign edebiliriz.

1//Object.setPrototypeOf(object, prototype)
2const dog = Object.create(animal)
3Object.setPrototypeOf(dog, mammal)

Referanslar