JavaScript’te Nesne Oluşturma ve İşleme: Object.assign(), Object.create(), Object.defineProperties()
Merhaba! Fatih Soysal olarak, JavaScript’te nesneleri yönetmek için kullanılan üç önemli yönteme, Object.assign(), Object.create() ve Object.defineProperties(), daha yakından bakacağız. Bu yöntemler, nesnelerin nasıl oluşturulduğunu, özelliklerinin nasıl kopyalandığını ve nasıl özelleştirildiğini anlamamızda bize yardımcı olur. Yazının sonunda, bu yöntemleri nasıl kullanabileceğinize dair pratik örnekler ve kod parçacıkları bulacaksınız. Ayrıca, kendi web siteminden daha fazla JavaScript eğitimine ulaşabilirsiniz.
Object.assign(): Nesneleri Birleştirme
Object.assign() yöntemi, bir veya daha fazla kaynak nesnesinin özelliklerini hedef bir nesneye kopyalar. Bu işlem, kaynak nesneleri değiştirmeden yapılır. Örneğin, iki nesneyi birleştirmek istediğinizde bu yöntem oldukça kullanışlıdır. Aynı zamanda, var olan bir nesneyi yeni özelliklerle genişletmek için de kullanılabilir.
const hedefNesne = { a: 1, b: 2 };
const kaynakNesne1 = { c: 3 };
const kaynakNesne2 = { d: 4, e: 5 };
Object.assign(hedefNesne, kaynakNesne1, kaynakNesne2);
console.log(hedefNesne); // Çıktı: { a: 1, b: 2, c: 3, d: 4, e: 5 }
Gördüğünüz gibi, Object.assign() metodu, kaynak nesnelerin tüm özelliklerini hedef nesneye ekledi. Ancak, eğer kaynak nesnelerde aynı isimde özellikler varsa, son eklenen özellik geçerli olur. Bu durum, özelliklerin üzerine yazılmasına neden olabilir.
Object.create(): Prototiplerle Nesne Oluşturma
Object.create() yöntemi, belirtilen bir prototip nesnesinden yeni bir nesne oluşturur. Bu, prototip kalıtımını uygulamanın pratik bir yoludur. Prototip kalıtımı, nesnelerin özelliklerini ve yöntemlerini prototip nesnesinden devralmasını sağlar, bu da kod tekrarını azaltır ve daha düzenli bir kod yapısı oluşturur.
const prototipNesne = {
yazdir: function() {
console.log("Merhaba, ben bir prototip nesnesiyim!");
}
};
const yeniNesne = Object.create(prototipNesne);
yeniNesne.yazdir(); // Çıktı: Merhaba, ben bir prototip nesnesiyim!
Yukarıdaki örnekte, yeniNesne, prototipNesne‘nin yazdir metodunu devraldı. Bu sayede, yeniNesne‘de yazdir metodunu tanımlamamıza gerek kalmadı.
Object.defineProperties(): Nesne Özelliklerini Tanımlama
Object.defineProperties() yöntemi, bir nesnenin özelliklerini ayrıntılı olarak tanımlamamızı sağlar. Her özelliğin tanımlayıcılarını (örneğin, yazma yeteneği, sayılabilirlik ve yapılandırılabilirlik) belirleyebiliriz. Bu yöntem, nesnelerin davranışını daha hassas bir şekilde kontrol etmemizi sağlar.
const nesne = {};
Object.defineProperties(nesne, {
ad: {
value: "Fatih",
writable: false, // Değeri değiştirilemez
enumerable: true, // for...in döngüsünde görünür
configurable: false // Özellik silinemez veya yeniden tanımlanamaz
},
soyad: {
value: "Soysal",
writable: true,
enumerable: true,
configurable: true
}
});
console.log(nesne.ad); // Çıktı: Fatih
nesne.ad = "Ali"; // Hata vermez, ancak değer değiştirilmez.
console.log(nesne.ad); // Çıktı: Fatih
for (let key in nesne) {
console.log(key + ": " + nesne[key]); // ad ve soyad yazdırılır
}
delete nesne.ad; // Hata verir çünkü configurable: false
Bu örnekte, ad özelliğinin değiştirilemez, silinemez ve yeniden tanımlanamaz olduğunu belirttik. soyad özelliği ise standart davranışa sahiptir. Object.defineProperties(), nesnelerin özelliklerini detaylı bir şekilde kontrol etmek istediğimiz durumlarda oldukça faydalıdır.
Umarım bu makale, JavaScript’te nesneleri yönetme konusunda size yardımcı olmuştur. Daha fazla bilgi için MDN Object.assign() dökümanına, MDN Object.create() dökümanına ve MDN Object.defineProperties() dökümanına göz atabilirsiniz. Sorularınız için bana ulaşmaktan çekinmeyin!
#Etiketler: JavaScript, Object.assign, Object.create, Object.defineProperties, Nesne Oluşturma, Nesne İşleme, Prototip, Kalıtım, JavaScript Öğretici, Fatih Soysal, Programlama