JavaScript中的回调函数是什么

  介绍

这篇文章主要介绍了JavaScript中的回调函数是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

回调函数是每个前端程序员都应该知道的概念之一。回调可用于数组,计时器函数,承诺,事件处理中。

回调函数

首先写一个向人打招呼的函数。

只需要创建一个接受<代码>名称> 问候(名字)> function 迎接(名字),{   return 才能,“你好,,${名称}!”;   }      问候(& # 39;克里斯蒂娜# 39;);,//,=祝辞,& # 39;你好,,克里斯蒂娜! & # 39;

如果向很多人打招呼该怎么办?可以用特殊的数组方法,<代码> array.map() 可以实现:

const  persons =,(& # 39;克里斯蒂娜# 39;,,& # 39;安娜# 39;];      const  messages =, persons.map(问候);   消息;,//,=祝辞,[& # 39;你好,,克里斯蒂娜! & # 39;,,& # 39;你好,,安娜! & # 39;]

<代码> persons.map(迎接)获取<代码> 数人组的所有元素,并分别用每个元素作为调用参数来调用<代码>问候()函数:<代码>的问候(& # 39;克里斯蒂娜# 39;),<代码>问候(& # 39;安娜# 39;)

有意思的是<代码> persons.map(迎接)方法可以接受<代码>问候(),函数作为参数。这样<代码>()打招呼,就成了<强>回调函数

<代码> persons.map(迎接)> 高阶函数

回调函数作为高阶函数的参数,高阶函数通过调用回调函数来执行操作。

重要的是高阶函数负责调用回调,并为其提供正确的参数。

在前面的例子中,高阶函数<代码> persons.map(迎接)负责调用,<代码>问候(),函数,并分别把数组中所有的元素<代码> & # 39;克里斯蒂娜# 39;和<代码>安娜& # 39;作为参数。

这就为识别回调提供了一条简单的规则。如果你定义了一个函数,并将其作参数提供给另一个函数的话,那么这就创建了一个回调。

你可以自己编写使用回调的高阶函数。下面是<代码> array.map() 方法的等效版本:

function 地图(数组,,回调),{   const 才能;mappedArray =, [];   for 才能;(const  item  of 数组),{,   ,,,mappedArray.push (   ,,,,,回调(项),,,,);   ,,}   return 才能;mappedArray;   }      function 迎接(名字),{   return 才能,“你好,,${名称}!”;   }      const  persons =,(& # 39;克里斯蒂娜# 39;,,& # 39;安娜# 39;];      const  messages =,地图(人,,欢迎);信息;,//,=祝辞,[& # 39;你好,,克里斯蒂娜! & # 39;,,& # 39;你好,,安娜! & # 39;]

<代码>地图(数组,回调)是一个高阶函数,因为它用回调函数作为参数,然后在其主体内部调用该回调函数:<代码>回调(项)

注意,常规函数(用关键字<代码> 函数定义)或箭头函数(用粗箭头<代码>=祝辞定义)同样可以作为回调使用。

同步回调

回调的调用方式有两种:<强>同步和<强>异步回调。

同步回调是“阻塞”的:高阶函数直到回调函数完成后才继续执行。

例如,调用<代码> map() 和<代码>问候()函数。

function 地图(数组,,回调),{   console.log才能(& # 39;地图(),开始# 39;);   const 才能;mappedArray =, [];   for 才能;(const  item  of 数组),{,mappedArray.push(回调(项),}   console.log才能(& # 39;地图(),完成# 39;);   return 才能;mappedArray;   }      function 迎接(名字),{   console.log才能(& # 39;()打招呼,叫# 39;);   return 才能,“你好,,${名称}!”;   }      const  persons =,(& # 39;克里斯蒂娜# 39;);      地图(人,,欢迎);//,logs  & # 39;地图(),开始# 39;//,logs  & # 39;()打招呼,叫# 39;//,logs  & # 39;地图(),完成# 39;

其中<代码>问候(),是同步回调。

同步回调的步骤:

<李>

高阶函数开始执行:<代码> & # 39;地图()开始# 39;

<李>

回调函数执行:<代码> & # 39;迎接()调用# 39;

<李>

。最后高阶函数完成它自己的执行过程:

JavaScript中的回调函数是什么