首页 > 解决方案 > 回调函数的参数如何工作?

问题描述

我刚开始使用 javascript,我无法真正理解回调函数是如何工作的。这听起来可能很愚蠢,但我有一些问题。不合适我就删了

如果回调函数是作为参数传递给另一个函数的函数,那么回调函数的参数会发生什么变化?

使用回调函数会执行两次(一次用作参数,一次声明时)?

此外,我无法理解在回调函数参数下方附加的照片中如何获取数组中元素的值。

在此处输入图像描述

标签: javascriptarraysasynchronouscallback

解决方案


通过以您的代码片段为例,我们看到这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}`);
})

推荐阅读