このマップ内で関数を呼び出すには、this が必要です

JavaScriptでは、mapの内部で関数呼び出しをする際にthisを活用するためにアロー関数が用いられる。アロー関数は独自のthisを作成せず、直近の親スコープのthisを継承する。

以下に例を示します。

const obj = {
name: "John",
getName() {
return this.name;
},
};
const names = ["Alice", "Bob", "Charlie"];
// 使用箭头函数在map内调用getName方法并使用obj作为this
const result = names.map((name) => obj.getName.call(obj));
console.log(result); // ["John", "John", "John"]

この例では、getNameメソッドを含むobjオブジェクトを定義し、それがオブジェクトのname属性を返します。その後、いくつかの名前を含むnames配列を定義します。mapメソッドを使用してnames配列を反復処理し、各要素にobj.getNameメソッドを呼び出します。マップ内ではアロー関数を使用しているため、アロー関数は最新の親スコープ(つまり、objオブジェクト)内のthisを継承するため、アロー関数内でthisを使用してobjオブジェクトを参照できます。

コールメソッドを使って呼び出し元オブジェクトをobjオブジェクトに設定し、getNameメソッドを呼び出しました。

bannerAds