【JS】回调函数 Callback(call then back)

A callback is a function that is passed as an argument to another function and is executed after its parent function has completed

 

概念:(传给另一个函数调用的) 函数

一般来说,只要参数是一个函数,那么这个函数就是回调。

用途:一般,在 step1 是一个异步任务的时候,就会使用 callback

 

function sendMsg() {
  console.log('发短信')
}

function callMe(msg) {
  console.log('打电话')
}
 
function goHome(callback) {
  console.log('先逛个街')
  console.log('坐车回家')
  callback()
}
 
// 女朋友回家,让她给我打个电话
goHome(()=>{
  callMe()
})

// 老妈回家,让她给我发个信息
goHome(()=>{
  sendMsg()
})

 

举个现实的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你。”对不,然后你女朋友回家以后还真给你发了条信息。
其实这就是一个回调的过程。你留了个函数b(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是函数a。她必须先回到家以后,函数a的内容执行完了,再执行函数b,然后你就收到一条信息了。
这里必须清楚一点:函数b是你以参数形式传给函数a的,那么函数b就叫回调函数。


也许有人有疑问了:一定要以参数形式传过去吗,我不可以直接在函数a里面调用函数b吗?确实可以。

解惑:如果你直接在函数a里调用的话,那么这个回调函数就被限制死了。但是使用函数做参数就有下面的好处:当你a(b)的时候函数b就成了回调函数,而你还可以a(c)这个时候,函数c就成了回调函数。如果你写成了function a(){...;b();}就失去了变量的灵活性

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值