Reflect va Proxy Ma'lumotnomasi
Ushbu sahifa JavaScript-da metadasturlash (Reflect va Proxy) uchun barcha metodlar va "tuzoqlar"ning to'liq ro'yxati hisoblanadi.
Reflect API Ma'lumotnomasi
Reflect global obyekti obyektlar ustida ichki amallarni bajarish uchun quyidagi metodlarni taqdim etadi.
| Metod | Tavsifi |
|---|---|
Reflect.apply(func, thisArg, args) | Funksiyani chaqiradi. |
Reflect.construct(target, args) | Yangi obyekt (instance) yaratadi (new operatori kabi). |
Reflect.defineProperty(target, prop, desc) | Yangi xususiyatni ta'riflaydi. |
Reflect.deleteProperty(target, prop) | Xususiyatni o'chiradi. |
Reflect.get(target, prop) | Xususiyat qiymatini o'qiydi. |
Reflect.set(target, prop, value) | Xususiyatga qiymat yozadi. |
Reflect.has(target, prop) | Xususiyat mavjudligini tekshiradi (in kabi). |
Reflect.ownKeys(target) | Obyektning barcha o'ziga tegishli kalitlarini qaytaradi. |
Reflect.getPrototypeOf(target) | Obyektning prototipini qaytaradi. |
Reflect.setPrototypeOf(target, proto) | Obyekt prototipini o'zgartiradi. |
Proxy "Tuzoqlari" (Handlers)
Proxy obyekti uchun handler ichida ishlatiladigan asosiy tuzoqlar ro'yxati.
| Tuzoq (Trap) | Qachon ishga tushadi? |
|---|---|
get(target, prop, receiver) | Xususiyat o'qilganda. |
set(target, prop, value, receiver) | Xususiyatga qiymat yozilganda. |
has(target, prop) | in operatori ishlatilganda. |
deleteProperty(target, prop) | delete operatori ishlatilganda. |
apply(target, thisArg, args) | Proxy funksiya sifatida chaqirilganda. |
construct(target, args) | new operatori bilan chaqirilganda. |
ownKeys(target) | Object.keys() yoki for...in ishlatilganda. |
defineProperty(target, prop, desc) | Object.defineProperty() ishlatilganda. |
JavaScript Ichki Amallar (Internal Operations)
JavaScript dvigateli (engine) har qanday obyekt bilan ishlaganda ichki amallardan foydalanadi. Reflect va Proxy aynan shu ichki amallar bilan ishlash imkonini beradi.
| Ichki Amal | Proxy Tuzog'i | Reflect Metodi |
|---|---|---|
[[Get]] | get | Reflect.get() |
[[Set]] | set | Reflect.set() |
[[HasProperty]] | has | Reflect.has() |
[[Delete]] | deleteProperty | Reflect.deleteProperty() |
[[Call]] | apply | Reflect.apply() |
[[Construct]] | construct | Reflect.construct() |
Muhim eslatma
Har bir Proxy tuzog'iga mos keladigan Reflect metodi mavjud. Bu Proxy ichida amallarni asl xolicha yo'naltirish (forwarding) uchun juda qulay.
