Reflect API
Reflect nesnesini ve trap içinde varsayılan davranışı nasıl uygulayacağını öğrenirsin.
Reflect nedir?
Reflect, nesne işlemleri için metodlar sunan yerleşik bir nesnedir. Bu metodlar, Proxy trap'leriyle birebir aynı isimlere ve davranışlara sahiptir; böylece trap içinden varsayılan davranışı çağırmanın temiz yoludur.
Reflect.get(target, prop);
Reflect.set(target, prop, value);Reflect.get bir özellik okur, Reflect.set bir özelliğe değer yazar ve başarılıysa true döndürür. Reflect.has ise in operatörüyle aynı sonucu verir. Proxy ile birlikte kullanıldığında kodun kısa ve tutarlı kalır.
Reflect trap içinde
Bir trap yazarken çoğu zaman amacın işlemi yakalayıp sonra olduğu gibi uygulamaktır. Reflect bunu tek satırda yapar.
const handler = {
get(target, prop) {
return Reflect.get(target, prop);
}
};Buraya bir console.log satırı ekleyerek loglama trap'i elde edersin ya da bir koşul ekleyerek doğrulama yaparsın. Reflect çağrısı kaldırılsa bile trap yine de çalışır; ancak Reflect ile kodun niyeti daha net görünür ve davranış proxy ile birebir aynı kalır.
Uygulama Reflect ile get ve set trap'leri
user adında name özelliği olan bir nesne tanımla. handler içinde get ve set trap'lerini yaz: her ikisi de Reflect çağrısı ile varsayılan davranışı uygulasın (get trap Reflect.get(target, prop) döndürsün, set trap Reflect.set(target, prop, value) döndürsün). proxy değişkenini new Proxy(user, handler) ile oluştur. proxy.age = 28 ata ve console.log(proxy.name) ile yazdır.
Örnek çözümü göster
const user = { name: 'Ayşe' };
const handler = {
get(target, prop) {
return Reflect.get(target, prop);
},
set(target, prop, value) {
return Reflect.set(target, prop, value);
}
};
const proxy = new Proxy(user, handler);
proxy.age = 28;
console.log(proxy.name);
Kendini test et
-
Reflect metodlarını eşleştir
- Reflect.get
- özellik okur
- Reflect.set
- özellik yazar
- Reflect.has
- varlık kontrolü
- Reflect
- trap yardımcısı
-
Reflect.get(target, prop) ne döndürür?
- true veya false
- undefined
- yeni bir Proxy döndürür
- target üzerindeki prop değerini
Cevabı göster
target üzerindeki prop değerini — Doğru! Reflect.get, target nesnesi üzerindeki prop özelliğinin değerini döndürür.
-
get trap içinde Reflect kullan
get(target, prop) { return ____; }Cevabı göster
get(target, prop) { return Reflect.get(target, prop); }