gpt4 book ai didi

javascript - 无法理解 JS 中的回调函数

转载 作者:行者123 更新时间:2023-12-03 01:08:30 25 4
gpt4 key购买 nike

所以我目前正在刷新我的 JS 知识,关于回调函数的一些内容让我感到困惑。

这基本上是一个“语法”问题,我注意到在练习示例中我看到回调总是使用代码中从未指定的参数,并且程序仍然使其工作。

示例:

const numbers = [1, 2, 3, 4, 5]; 

const bigNumbers = numbers.map(number => {
return number * 10;
});

看到“numbers”和“number”,它们都是不同的变量,那么程序如何识别“number”指的是数组内的单个数据?

我的问题是,我觉得“number”变量不知从何而来,但程序似乎确切地知道它的作用。

最佳答案

回调及其​​参数由 Array.prototype.map 内部处理。要亲自了解它如何工作,您可以定义自己的函数来执行类似的操作,并调用传递给它的回调:

function myMap(callback) {
const inputArr = this;
const newArr = [];
for (let i = 0; i < inputArr.length; i++) {
newArr.push(
callback(inputArr[i], i, inputArr)
);
}
return newArr;
}

const numbers = [1, 2, 3, 4, 5];

const bigNumbers = myMap.call(numbers, number => number * 10);
console.log(bigNumbers);

number 参数并不是凭空出现的 - 它是您为回调函数定义的参数,其中(对于 Array.prototype.map )spec guarantees 对应于正在迭代的数组中的项目。 (您可以根据需要使用任意数量的参数)

关于javascript - 无法理解 JS 中的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52287052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com