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