この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - JavaScript クイズ
97. `this` V
上記のコードは、「BFE1」「BFE2」「BFE3」の3つの文字列をそれぞれ1行に出力します」という結果を出力します。
ただし、このコードにはバグがあり、 forEach
関数の function (item)
内で this.prefix
が undefined
を返します。これは、新しい関数スコープ内で this
が undefined
になるためです。解決するために、 this
を that
または他の変数に割り当て、別の変数で prefix
値を参照する必要があります。修正されたコードは以下のようになります。
const obj = {
prefix: 'BFE',
list: ['1', '2', '3'],
log() {
const that = this;
this.list.forEach(function (item) {
console.log(that.prefix + item);
});
},
};
obj.log();
これにより、「BFE1」「BFE2」「BFE3」が出力されます。