JavaScriptда объект хусусиятига мурожаат хатоси

Объект хусусиятига мурожаат килганда ушбу хусусиятнинг номи ўзгарувчида сақланмайди. Нега бунинг шундай эканини кўрамиз. Бизда ушбу объект бор деб фараз килайлик:

javascriptlet obj = {a: 1, b: 2, c: 3};

Фарз килайлик, ўзгарувчида биз олмоқчи бўлган хусусиятнинг номи сақланган:

javascriptlet key = 'a';

Келик, ушбу ўзгарувчидан фойдаланиб, объект хусусиятига мурожаат киб кўрамиз:

javascriptconsole.log(obj.key); // undefined

Келтирилган код ишламейди, чунки аслида биз 'key' номли хусусиятни излаяпмиз, ёмки key ўзгарувчида сақланган номли хусусиятни эмас. Яъни аслида бизнинг кодимиз куйидагига эквивалент:

javascriptconsole.log(obj['key']);

Ўзгарувчидан олинган калит орқали элементга мурожаат килишнинг ягона усули - ушбу ўзгарувчини қавс ичида ёзишдир:

javascriptconsole.log(obj[key]);
Задание 1

Куйидаги кодда қилган хатони тузатинг:

javascriptlet obj = {x: 1, y: 2, z: 3};

let prop = 'x';
console.log(obj.prop);
Задание 2

Куйидаги кодда қилган хатони тузатинг:

javascriptlet obj = {x: 1, y: 2, z: 3};

let prop = 'x';
console.log(obj['prop']);