Maxsus tip koersiyasi (Custom type coercion)
Yuqoridagi shartli ifodani bir ko'rganda ishlamaydi deb o'ylash tabiiy. Chunki Qanday qilib bir o'zgaruvchi bir vaqtda 3 xil qiymatga ega bo'lishi mumkin?
Bu albatta mumkin emas, agar o'zgaruvchi primitiv bo'lsa! Shuning uchun o'zgaruvchini dinamik ravishda primitiv qiymat qaytaruvchi obyektga aylantirish yechim bo'ladi.
Dinamik ravishda primitiv qiymat qaytarish
Buning uchun biz obyektimizga"valueOf" yoki "toString" metodlarini qo'shishimiz kerak bo'ladi. "[Symbol.toPrimitive]" orqali qo'shganimizda prioriteti ancha baland bo'ladi. Ya'ni, agar obyektda 3 ta metod ham bo'lsa JS interpretator
1-"[Symbol.toPrimitive]"
2-"valueOf"
3-"toString()"
metodlariga nisbatan tekshiradi.
Va albatta, bular "==" operatorini qo'llaganimizda ro'y beradi. :)
@brogrammist
>>Click here to continue<<
