Памылка звароту да ўласцівасці аб'екта ў JavaScript
Пры звароце да ўласцівасці аб'екта імя гэтай уласцівасці не можа захоўвацца ў зменнай. Давайце паглядзім чаму. Хай у нас дадзены вось такі аб'ект:
let obj = {a: 1, b: 2, c: 3};
Хай ў зменнай захоўваецца імя ўласцівасці, значэнне якога мы хочам атрымаць:
let key = 'a';
Паспрабуем звярнуцца да ўласцівасці аб'екта, вiкарыстоўваючы гэтую зменную:
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']);