Хатогии муроҷиат ба хосияти объект дар JavaScript
Вақте ки ба хосияти объект муроҷиат мекунед, номи он хосият наметавонад дар тағирёбанда нигоҳ дошта шавад. Биёед бубинем чаро. Бигзор мо ин гуна объект дошта бошем:
let obj = {a: 1, b: 2, c: 3};
Бигзор дар тағирёбанда номи хосият нигоҳ дошта мешавад, ки қимати онро мо мехоҳем гирем:
let key = 'a';
Биёед кӯшиш кунем ба хосияти объект муроҷиат кунем, ин тағирёбандаро истифода бурда:
console.log(obj.key); // undefined
Коди додашуда кор нахоҳад кард, зеро
ки дар асл мо ба хосият бо номи
'key' меҷӯем, на ба хосияте, ки номаш дар
тағирёбандаи key нигоҳ дошта мешавад. Яъне дар асл
коди мо ба ин баробар аст:
console.log(obj['key']);
Ягона роҳи муроҷиат ба элемент бо калид аз тағирёбанда навиштани ин тағирёбанда дар қавсҳои квадратӣ мебошад:
console.log(obj[key]);
Хатоеро ислоҳ кунед, ки дар коди зерин сурат гирифтааст:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Хатоеро ислоҳ кунед, ки дар коди зерин сурат гирифтааст:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);