JavaScript Reflect API
Reflect — bu JavaScript obyektlari ustida past darajali (low-level) amallarni bajarish uchun mo'ljallangan global obyekt. U ES6 (2015) standartida kiritilgan.
Obyektlar uchun "Asboblar qutisi"
Reflect — bu obyektlar bilan xavfsiz va tartibli ishlash imkonini beruvchi vositalar to'plamidir. U yordamida obyektning xususiyatlarini o'qish, yozish, o'chirish va tekshirishni yagona uslubda bajarish mumkin.
Nima uchun Reflect kerak?
Reflect paydo bo'lguncha obyektlar bilan ishlash usullari tarqoq edi:
invadeletekabi operatorlar ishlatilardi.Object.definePropertykabi metodlar bor edi.- Ba'zi amallar xato (error) qaytarsa, ba'zilari
falseqaytarardi.
Reflect bularni tartibga soladi:
- Barcha ichki amallarni (masalan,
delete) funksiya ko'rinishiga keltiradi. - Xato beravermasdan, muvaffaqiyatli yoki yo'qligini bildiruvchi boolean (
true/false) qaytaradi. - Proxy obyekti bilan ishlash uchun maxsus moslashtirilgan.
Asosiy metodlar
Reflect.has()
Obyektda ma'lum bir xususiyat borligini tekshiradi (xuddi in kabi).
const user = { name: 'Ali', age: 25 }
console.log(Reflect.has(user, 'name')) // trueReflect.set()
Obyekt xususiyatiga qiymat beradi. Muvaffaqiyatli bo'lsa true qaytaradi.
const user = { name: 'Ali' }
Reflect.set(user, 'age', 30)
console.log(user.age) // 30Reflect.deleteProperty()
Obyektning xususiyatini o'chiradi (xuddi delete kabi).
const user = { name: 'Ali', age: 25 }
Reflect.deleteProperty(user, 'age')
console.log(user) // { name: "Ali" }Reflect va Proxy birgalikda
Reflect-ning eng katta quvvati Proxy ichida namoyon bo'ladi. U Proxy tomonidan "tutib olingan" amallarni asl obyektga xavfsiz tarzda yo'naltirib beradi.
const proxy = new Proxy(target, {
set(target, prop, value) {
console.log(`O'zgarmoqda: ${prop} = ${value}`)
// Amallarni asl obyektga xavfsiz yo'naltirish
return Reflect.set(target, prop, value)
}
})Foydalanish jadvali
| Holat | Reflect ishlatish kerakmi? | Sababi |
|---|---|---|
| Oddiy obyekt yaratish | Yo'q | Standart yozuv qulayroq. |
| Proxy trap-larini yo'naltirish | Ha | Xavfsiz va to'g'ri ishlashni ta'minlaydi. |
| Metadasturlash | Ha | Past darajali boshqaruv beradi. |
| Xatolarni kamaytirish | Ha | true/false qaytarishi tufayli kod barqaror bo'ladi. |
Tavsiya
Reflect metodlarining to'liq ro'yxati bilan Metadasturlash Ma'lumotnomasi bo'limida tanishishingiz mumkin.
