javascript - 回调函数的参数如何工作?
问题描述
我刚开始使用 javascript,我无法真正理解回调函数是如何工作的。这听起来可能很愚蠢,但我有一些问题。不合适我就删了
如果回调函数是作为参数传递给另一个函数的函数,那么回调函数的参数会发生什么变化?
使用回调函数会执行两次(一次用作参数,一次声明时)?
此外,我无法理解在回调函数参数下方附加的照片中如何获取数组中元素的值。
解决方案
通过以您的代码片段为例,我们看到这logPerson
是一个函数。我们也Array.prototype.forEach
用来循环遍历一个people
.
现在 forEach 将一个函数作为参数,它使用参数作为每次迭代的项目值和索引来调用该函数。
因此,当我们logPerson
作为参数传递给时forEach
,这个函数会使用 forEach 传递给其回调的参数来调用
forEach 的一个简单实现可能是
Array.prototype.forEach = function(callback) {
const arr = this;
for(let i = 0; i < arr.length; i++) {
callback(arr[i], i);
}
}
编写示例的另一种方法是
let people = ["mario", "luigi", "rui"];
people.forEach((person, index) => {
console.log(`${index} - hello ${person}`);
})
推荐阅读
- r - 如何将经度数据转换为连接数据?
- c# - 如何使用 Linq 删除 List<> 中的嵌套(子)项?
- python - 不带零的滚动平均值和标准差
- scala - 如何将 Parquet 文件转换为 Protobuf 并将其保存在 HDFS/AWS S3
- python - 如何理解有关文本文档相似性的问题
- java - File.exists() 有效,但 Files.readAllBytes() 因 NoSuchFileException 而失败
- typescript - 打字稿:映射类型中的索引签名
- c++ - C++:结构的默认构造函数不起作用?
- android - 通过删除 Reloading 状态并仅使用 Loading 状态来简化 ViewState
- python - 通过匹配模式获取多个子字符串