【问题标题】:definition for callback function and how it fits for array.prototype.forEach/map/filter methods回调函数的定义以及它如何适合 array.prototype.forEach/map/filter 方法
【发布时间】:2014-11-04 01:13:23
【问题描述】:

这可能被认为是一个愚蠢的问题。但我对此有些困惑,这就是为什么我要在这里问这个问题。在这个网站here。我发现这个网站非常有用。有那里描述的回调函数的一些定义是

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

2.可以作为遮光物使用。

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

但是回调还有另一个定义是:

需要注意的是回调函数没有被执行 立即地。它在某些特定的地方被“召回”(因此得名) 指向包含函数的主体内

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

但它如何适用于数组方法,如 forEach、map、filter、some 和every。它们似乎在运行时立即调用。根据定义 3。我不知道它们是否可以用作 clousers,因为我不是 javascript 专家。仍在尝试学习。所以它如何适合 javascript 中回调的定义。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    A 不会将这些陈述视为一个定义。如果您正在寻找定义,请查看您最喜欢的计算机科学书籍。或Wikipedia:

    回调是一段可执行代码,它作为参数传递给其他代码,预计会在某个方便的时间回调(执行)该参数。

    文章仅说明了特定用途,作为onclick 事件侦听器的回调,不会立即执行。这不适用于所有回调。维基百科继续:

    调用可能像同步回调那样立即发生,也可能在以后发生,像异步回调那样。

    并非 JavaScript 中的所有回调都是异步的(另请参阅 these questions)。但是,它们通常与异步相关联,因为 JavaScript 中的所有异步任务都使用回调。

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

    你没有。 mapfilter 等——“容器功能”——不过。他们在循环中的任意位置调用它们。

    不知道能不能做遮光布

    是的。所有 JavaScript 函数都是 closures - 无论从何处调用它们,它们都可以访问其父作用域。

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 2012-03-21
      • 2021-03-06
      • 2011-12-07
      • 1970-01-01
      相关资源
      最近更新 更多