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']);