Konuyu Açan
#0
JavaScript, esnek ve dinamik yapısı sayesinde birçok farklı programlama paradigmasını destekler. Bunlardan biri de Proxy nesnesidir. Proxy, JavaScript'te belirli nesnelere müdahale etmemizi sağlayan bir yapı sunar. Bu, nesneye erişim ve etkileşim sırasında özel davranışlar tanımlamamıza olanak tanır.
Proxy nesnesi, iki ana bileşenden oluşur: hedef nesne ve tuzak (trap) fonksiyonları. Hedef nesne, üzerinde işlem yapılacak olan nesnedir. Tuzak fonksiyonları ise, belirli işlemlerin nasıl yönetileceğini belirleyen fonksiyonlardır. Örneğin, bir nesneye erişim, atama veya silme gibi işlemler için farklı tuzaklar tanımlanabilir.
Örnek olarak, bir nesneye müdahale etmek için aşağıdaki kodu inceleyelim:
Bu örnekte,
Proxy nesneleri, özellikle veri doğrulama, erişim kontrolü ve nesne davranışlarını değiştirme gibi durumlarda oldukça kullanışlıdır. JavaScript'in esnekliği sayesinde, proxy'ler ile karmaşık nesne yapıları üzerinde derinlemesine kontrol sağlanabilir. Bu özellikler, yazılım geliştirme sürecinde daha sağlam ve güvenilir uygulamalar oluşturmaya yardımcı olur.
Proxy nesnesi, iki ana bileşenden oluşur: hedef nesne ve tuzak (trap) fonksiyonları. Hedef nesne, üzerinde işlem yapılacak olan nesnedir. Tuzak fonksiyonları ise, belirli işlemlerin nasıl yönetileceğini belirleyen fonksiyonlardır. Örneğin, bir nesneye erişim, atama veya silme gibi işlemler için farklı tuzaklar tanımlanabilir.
Örnek olarak, bir nesneye müdahale etmek için aşağıdaki kodu inceleyelim:
CODE
1234567891011121314151617181920212223242526272829
const hedefNesne = {
isim: 'Ali',
yas: 30
};
const proxyNesne = new Proxy(hedefNesne, {
get: function(target, property) {
if (property in target) {
return target[property];
} else {
console.warn([icode]"${property}" özelliği mevcut değil.[/icode]);
return undefined;
}
},
set: function(target, property, value) {
if (property === 'yas' && value < 0) {
console.error('Yaş negatif olamaz.');
return false;
}
target[property] = value;
return true;
}
});
console.log(proxyNesne.isim); // Ali
proxyNesne.yas = -5; // Yaş negatif olamaz.
console.log(proxyNesne.yas); // 30
proxyNesne.yeniOzellik = 'Yeni'; // Yeni özellik başarıyla eklendi.
Bu örnekte,
get tuzağı, var olmayan bir özelliğe erişilmeye çalışıldığında bir uyarı mesajı verirken, set tuzağı ise yaşın negatif bir değere atanmasını engeller. Böylece, proxy nesnesi üzerinden hedef nesneye yapılan tüm işlemler kontrol altında tutulur.Proxy nesneleri, özellikle veri doğrulama, erişim kontrolü ve nesne davranışlarını değiştirme gibi durumlarda oldukça kullanışlıdır. JavaScript'in esnekliği sayesinde, proxy'ler ile karmaşık nesne yapıları üzerinde derinlemesine kontrol sağlanabilir. Bu özellikler, yazılım geliştirme sürecinde daha sağlam ve güvenilir uygulamalar oluşturmaya yardımcı olur.