Skip to content

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:

  • in va delete kabi operatorlar ishlatilardi.
  • Object.defineProperty kabi metodlar bor edi.
  • Ba'zi amallar xato (error) qaytarsa, ba'zilari false qaytarardi.

Reflect bularni tartibga soladi:

  1. Barcha ichki amallarni (masalan, delete) funksiya ko'rinishiga keltiradi.
  2. Xato beravermasdan, muvaffaqiyatli yoki yo'qligini bildiruvchi boolean (true/false) qaytaradi.
  3. Proxy obyekti bilan ishlash uchun maxsus moslashtirilgan.

Asosiy metodlar

Reflect.has()

Obyektda ma'lum bir xususiyat borligini tekshiradi (xuddi in kabi).

js
const user = { name: 'Ali', age: 25 }
console.log(Reflect.has(user, 'name')) // true

Reflect.set()

Obyekt xususiyatiga qiymat beradi. Muvaffaqiyatli bo'lsa true qaytaradi.

js
const user = { name: 'Ali' }
Reflect.set(user, 'age', 30)
console.log(user.age) // 30

Reflect.deleteProperty()

Obyektning xususiyatini o'chiradi (xuddi delete kabi).

js
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.

js
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

HolatReflect ishlatish kerakmi?Sababi
Oddiy obyekt yaratishYo'qStandart yozuv qulayroq.
Proxy trap-larini yo'naltirishHaXavfsiz va to'g'ri ishlashni ta'minlaydi.
MetadasturlashHaPast darajali boshqaruv beradi.
Xatolarni kamaytirishHatrue/false qaytarishi tufayli kod barqaror bo'ladi.

Tavsiya

Reflect metodlarining to'liq ro'yxati bilan Metadasturlash Ma'lumotnomasi bo'limida tanishishingiz mumkin.