TG Telegram Group & Channel
Brogrammist | United States America (US)
Create: Update:

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

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

Brogrammist






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)