Xossalarni o'chirish

delete operatori (§4.13.4) obyektdan xossani olib tashlaydi. Uning yagona operandi xossaga murojaat qilish ifodasi bo'lishi kerak. Ajablanarlisi shundaki, delete xossaning qiymati ustida emas, balki xossaning o'zi ustida ishlaydi:

delete operatori faqat shaxsiy xossalarni o'chiradi, meros qilib olinganlarni emas. (Meros qilib olingan xossani o'chirish uchun siz uni o'sha xossa aniqlangan prototip obyektidan o'chirishingiz kerak. Bu ish o'sha prototipdan meros oladigan har bir obyektga ta'sir qiladi.)

Agar o'chirish muvaffaqiyatli bo'lsa yoki o'chirish hech qanday ta'sir ko'rsatmasa (masalan, mavjud bo'lmagan xossani o'chirish), delete ifodasi true'ga baholanadi. delete, shuningdek, xossaga murojaat qilish ifodasi bo'lmagan ifoda bilan (ma'nosiz) ishlatilganda ham true'ga baholanadi:

delete operatori configurable atributi false bo'lgan xossalarni olib tashlamaydi. Ichki o'rnatilgan obyektlarning ba'zi xossalari, shuningdek, o'zgaruvchi e'loni va funksiya e'loni orqali yaratilgan global obyektning xossalari sozlanmaydigan (non-configurable) hisoblanadi. Qat'iy rejimda, sozlanmaydigan xossani o'chirishga urinish TypeError xatoligiga sabab bo'ladi. Qat'iy bo'lmagan rejimda esa, bu holda delete shunchaki false'ga baholanadi:

Qat'iy bo'lmagan rejimda global obyektning sozlanadigan xossalarini o'chirayotganda, global obyektga havolani tushirib qoldirishingiz va shunchaki delete operatoridan keyin xossa nomini yozishingiz mumkin:

Biroq qat'iy rejimda, agar delete'ning operandi x kabi to'g'ridan-to'g'ri identifikator bo'lsa, u SyntaxError xatoligiga sabab bo'ladi va siz xossaga murojaatni to'liq ko'rinishda (globalThis.x kabi) yozishingiz shart: