get ve set trap'leri
get ve set trap'leri ile özellik okuma ve yazmayı yakalamayı öğrenirsin.
get trap'i
get trap, bir özelliği okuduğunda çalışır. proxy.name yazdığında, handler üzerindeki get metodu çağrılır ve dönüş değeri sana verilir.
const handler = {
get(target, prop) {
return target[prop];
}
};Trap imzası get(target, prop, receiver) şeklindedir. target sarılan nesne, prop okunan özellik adı, receiver ise Proxy'nin kendisidir. Buradan istediğin değeri döndürebilirsin; böylece okumayı gizleyebilir veya dönüştürebilirsin.
set trap'i
set trap, bir özelliğe değer atadığında çalışır. proxy.age = 28 yazdığında handler üzerindeki set metodu çağrılır.
const handler = {
set(target, prop, value) {
target[prop] = value;
return true;
}
};Trap imzası set(target, prop, value, receiver) şeklindedir. value atanmak istenen yeni değerdir. set trap true döndürmelidir; aksi halde katı modda atama başarısız olur. Buradan değeri doğrulayabilir, dönüştürebilir veya reddedebilirsin.
Uygulama get ve set trap'lerini yaz
user adında name özelliği olan bir nesne tanımla. handler içinde get ve set trap'lerini yaz: get trap target[prop] döndürsün, set trap target[prop] = value yapıp true döndürsün. proxy değişkenini new Proxy(user, handler) ile oluştur. proxy.age = 28 ata ve console.log(proxy.age) ile yazdır.
Örnek çözümü göster
const user = { name: 'Ayşe' };
const handler = {
get(target, prop) {
return target[prop];
},
set(target, prop, value) {
target[prop] = value;
return true;
}
};
const proxy = new Proxy(user, handler);
proxy.age = 28;
console.log(proxy.age);
Kendini test et
-
get trap içinde değeri döndür
get(target, prop) { return ____; }Cevabı göster
get(target, prop) { return target[prop]; } -
get trap kaç parametre alır?
- target, prop ve receiver
- sadece target
- yalnızca prop
- target ve value
Cevabı göster
target, prop ve receiver — Doğru! get trap; target, prop ve receiver olmak üzere üç parametre alır.
-
get ve set trap kavramlarını eşleştir
- get trap
- okumayı yakalar
- set trap
- yazmayı yakalar
- target
- orijinal nesne
- value
- yeni değer