回调函数的定义以及它如何适用于array.prototype.forEach/map/filter方法

definition for callback function and how it fits for array.prototype.forEach/map/filter methods

本文关键字:forEach array prototype map 方法 filter 适用于 定义 函数 回调      更新时间:2023-09-26

这可能被认为是一个愚蠢的问题。但我对此有些困惑,这就是为什么我要在这里问这个问题。在这里的这个网站。我觉得这个网站信息量很大。这里描述了回调函数的一些定义,它们是

1.可以作为参数传递给另一个函数

2.可用作clousers。

3.可以在容器函数内部的任何点访问。

但回调还有另一个定义:

需要注意的是,回调函数没有执行立即它在指定的时间被"回调"(因此得名)包含函数主体内的点

适用于任何点击事件。如document.getElementById('id').onclick=function(){};

但是它如何适用于数组方法,如forEach、map、filter、some和every。它们似乎在运行时立即调用。根据定义3,我不能在任何地方使用它们。我不知道它们是否可以用作clouser,因为我不是javascript专家。我还在努力学习。那么它是如何适合javascript中回调的定义的呢。

A不会将这些语句视为定义。如果你正在寻找一个定义,可以看看你最喜欢的计算机科学书籍。或者维基百科:

回调是一段可执行代码,它作为参数传递给其他代码,期望其他代码在方便的时候回调(执行)参数。

这篇文章只指出,作为onclick事件侦听器的回调这一特定用途不会立即执行。这并不适用于所有的回调。维基百科继续:

调用可能是立即的,如在同步回调中,也可能在稍后发生,如在异步回调

并非JavaScript中的所有回调都是异步的(另请参阅这些问题)。然而,它们通常与异步相关,因为JavaScript中的所有异步任务都使用回调。

根据定义3,我不能在任何地方使用它们。

你没有。mapfilter等——"容器函数"——确实如此。他们想从哪里打电话给他们。

我不知道他们是否可以用作clousers

是的。所有的JavaScript函数都是闭包——无论从哪里调用它们,它们都可以访问父作用域。