在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"]
在這個例子中,我們定義了一個obj對象,其中包含一個getName方法,返回該對象的name屬性。然后,我們定義了一個names數組,包含一些名字。我們使用map方法遍歷names數組,并在每個元素上調用obj.getName方法。由于我們在map內部使用了箭頭函數,箭頭函數繼承了最近的父級作用域(即obj對象)中的this,所以我們可以在箭頭函數內部使用this來引用obj對象。
在箭頭函數內部,我們使用了call方法來設置getName方法中的this為obj對象。最后,我們將map返回的結果打印到控制臺上,得到了[“John”, “John”, “John”]。這表明在map內部成功地使用this調用了getName方法,并獲取了obj對象的name屬性。