При обращении к свойству объекта имя этого свойства не может хранится в переменной. Давайте посмотрим почему. Пусть у нас дан вот такой объект:
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']);