我不明白这个回调函数的例子,其中我们回调了一个实际上尚未声明的函数

问题描述 投票:0回答:1

在下面来自 Codecademy 的示例中,考虑到我们到目前为止只声明了“艺术家”,我不太明白控制台如何处理高阶函数中的“艺术家”参数?

const artists = ['Picasso', 'Kahlo', 'Matisse', 'Utamaro'];

artists.forEach(artist => {
  console.log(artist + ' is one of my favorite artists.');
});

我们如何使用“艺术家”而不是类似:

artist[i]
javascript higher-order-functions
1个回答
0
投票

当您运行

forEach(artist = > {/*something*/})
时,您正在创建回调函数,该函数会为数组中的每个元素调用。
artist =>
部分将
artist
作为参数传递。在新创建的函数中,您可以使用 Artist 参数,该参数将是
artists
数组中的艺术家之一。这就是为什么您也可以像这样使用
.forEach()

const artists = ['Picasso', 'Kahlo', 'Matisse', 'Utamaro'];
function printArtist(artist) {
       console.log(artist + ' is one of my favorite artists.');
}
artists.forEach(artist => printArtist(artist))
© www.soinside.com 2019 - 2024. All rights reserved.