Xossalarni tekshirish
JavaScript obyektlarini xossalar to'plami sifatida tasavvur qilish mumkin va ko'pincha to'plamga a'zolikni sinab ko'rish — ya'ni, obyektda berilgan nomdagi xossa mavjudligini tekshirish — foydalidir. Buni in
operatori, hasOwnProperty()
va propertyIsEnumerable()
metodlari yordamida yoki shunchaki xossani so'rash orqali amalga oshirishingiz mumkin. Bu yerda ko'rsatilgan barcha misollar xossa nomlari sifatida satrlardan foydalanadi, lekin ular Symbol
'lar (§6.10.3) bilan ham ishlaydi.
in
operatori chap tomonida xossa nomini, o'ng tomonida esa obyektni kutadi. Agar obyektda shu nomdagi shaxsiy yoki meros qilib olingan xossa mavjud bo'lsa, u true
qaytaradi:
Obyektning hasOwnProperty()
metodi o'sha obyektda berilgan nomdagi shaxsiy xossa mavjudligini tekshiradi. U meros qilib olingan xossalar uchun false
qaytaradi:
propertyIsEnumerable()
metodi hasOwnProperty()
tekshiruvini yanada aniqlashtiradi. U faqat nomlangan xossa shaxsiy xossa bo'lsa va uning enumerable
(sanab o'tiladigan) atributi true
bo'lsagina true
qaytaradi. Ba'zi ichki o'rnatilgan xossalar sanab o'tilmaydi. Oddiy JavaScript kodi orqali yaratilgan xossalar esa, agar siz ularni sanab o'tilmaydigan qilish uchun §14.1-bo'limda ko'rsatilgan usullardan birini ishlatmagan bo'lsangiz, sanab o'tiladigan bo'ladi.
in
operatorini ishlatish o'rniga, ko'pincha shunchaki xossani so'rash va uning undefined
emasligiga ishonch hosil qilish uchun !==
'dan foydalanish yetarli bo'ladi:
in
operatorining oddiy xossaga murojaat qilish usulidan bitta muhim ustunligi bor: u xossaning umuman mavjud emasligi holatini xossaning mavjud, lekin qiymati undefined
'ga tenglashtirilgan holatidan farqlay oladi. Ushbu kodni ko'rib chiqing: