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