回调函数是每个前端程序员都应该知道的概念之一 。回调可用于数组、计时器函数、promise、事件处理中 。
本文将会解释回调函数的概念 , 同时帮你区分两种回调:同步和异步 。
回调函数 首先写一个向人打招呼的函数 。
只需要创建一个接受 name参数的函数 greet(name) 。这个函数应返回打招呼的消息:
如果向很多人打招呼该怎么办?可以用特殊的数组方法 array.map()可以实现:
persons.map(greet)获取 persons数组的所有元素 , 并分别用每个元素作为调用参数来调用 greet()
函数:`greet(‘Cristina’), greet(‘Ana’) 。
有意思的是 persons.map(greet)方法可以接受 greet()函数作为参数 。这样 greet()就成了回调函数 。
persons.map(greet)是用另一个函数作为参数的函数 , 因此被称为高阶函数 。
回调函数作为高阶函数的参数 , 高阶函数通过调用回调函数来执行操作 。
重要的是高阶函数负责调用回调 , 并为其提供正确的参数 。
在前面的例子中 , 高阶函数 persons.map(greet)负责调用 greet()函数 , 并分别把数组中所有的元素 ‘Cristina’和 Ana ‘作为参数 。
这就为识别回调提供了一条简单的规则 。如果你定义了一个函数 , 并将其作参数提供给另一个函数的话 , 那么这就创建了一个回调 。
你可以自己编写使用回调的高阶函数 。下面是 array.map()方法的等效版本:
map(array,callback)是一个高阶函数 , 因为它用回调函数作为参数 , 然后在其主体内部调用该回调函数:callback(item) 。
注意 , 常规函数(用关键字 function定义)或箭头函数(用粗箭头 =>定义)同样可以作为回调使用 。
同步回调 回调的调用方式有两种:同步和异步回调 。
同步回调是“阻塞”的:高阶函数直到回调函数完成后才继续执行 。
例如 , 调用 map()和 greet()函数 。
【js中回调函数的用法 回调函数js利用箭头函数】其中 greet()是同步回调 。
同步回调的步骤:
- 高阶函数开始执行:’map() starts’回调函数执行:’greet() called’最后高阶函数完成它自己的执行过程:’map() completed’
推荐阅读
- 总结音响调节最佳方法 音响怎么调能达到最佳效果
- 信用卡为什么单笔限额 信用卡单笔限额怎么调整
- 怎么调饺子馅好吃 调饺子馅的方法
- 数学知识:三角函数求最值的方法
- 美的空调热风怎么调 美的空调怎么调制热
- 查汉字手写 调整手写的
- 两种调用Excel函数的操作方法 vb调用excel数据百度搜索
- excel一键调整图片大小 excel数据太大打不开怎么办
- 宝宝舌苔厚白是怎么回事? 宝宝舌苔厚白怎么调理
- 空调的四个作用及开关按键 自动挡车空调开关在哪