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: