String xususiyatini qo'shsam bo'ladimi?
Quyidagi kodni koârib chiqing:
let str = "Salom";
str.test = 5;
alert(str.test);
Sizningcha, u qanday ishlaydi? Nima koârsatiladi?
Buni bajarib koâring:
let str = "Salom";
str.test = 5; // (*)
alert(str.test);
Natija ikki xil boâlishi mumkin:
undefined- Xato.
Nima uchun? Keling, (*) qatorida nima boâlayotganini koâraylik:
strxususiyatga murojaat qilish vaqtida âoâralish-obyektiâ yaratiladi.- Xususiyat bilan operatsiya unda amalga oshiriladi. Shunday qilib, obyekt
testxususiyatini oladi. - Amaliyot tugaydi va âoâralishsh-obyektiâ yoâqoladi.
Shunday qilib, oxirgi satrda str xususiyatidan iz qolmaydi. Matndagi har qanday obyekt ishlashi uchun yangi oâralish obyekti.
Baâzi brauzerlar dasturchini yanada cheklashga qaror qilishlari va umuman ibtidoiylarga xususiyatlarni berishga yoâl qoâymasliklari mumkin. Shuning uchun amalda xatolarni (*) satrida ham koârishimiz mumkin. Bu spetsifikatsiyadan biroz uzoqroq.
Ushbu misol ibtidoiylar obyekt emasligini aniq koârsatib turibdi.
Ular qoâshimcha maâlumotlarni saqlay olmaydi.
Barcha xususiyat/usul operatsiyalari vaqtinchalik obyektlar yordamida amalga oshiriladi.