什么是「回调函数」 Callback Function ?

我们用一个生活中最常见的例子来通俗地解释回调函数 (Callback Function)

想象一下你去一家很火的餐厅点餐。


场景:点一杯奶茶

  1. 你(主程序):走到柜台,对服务员说:“我想要一杯珍珠奶茶。”
  2. 服务员(一个需要花时间的函数,比如 makeTea:对你说:“好的,但是现在人多,做奶茶需要5分钟。您不能一直站在这里干等。”
  3. 服务员接着说:“这样吧,您把您的手机号告诉我。奶茶做好了,我打电话通知您。”

在这个场景里:

  • “打电话通知您” 这个动作,就是 回调 (Callback)
  • 你留下的**“手机号”**,就是 回调函数 (Callback Function)

拆解一下这个过程:

  • 你把“手机号”交给了服务员:这对应着,你把一个函数 (Callback Function) 作为参数传递给了另一个函数 (makeTea 函数)。
  • 你去做别的事了:你不用傻等,可以去逛逛街、玩玩手机。这对应着,你的主程序不会被卡住(阻塞),可以继续执行其他代码。这就是异步
  • 奶茶做好了(事件发生):服务员完成了他的任务。
  • 服务员拨打你的手机号(执行回调)makeTea 函数在它自己的任务完成后,回过头来调用了你当初留给它的那个函数(你的“手机号”)。
  • 你接电话(回调函数里的代码被执行):你收到通知,然后说:“好的,我马上过来取!”。这个“过来取”的动作,就是定义在回调函数内部的逻辑。

总结成一句话定义:

一个回调函数,就是你传递给另一个函数A的“B函数”,并告诉A:“你先忙你自己的事,等你忙完了,再回过头来调用我给你的这个B函数。”

为什么需要它?

主要用于两种情况:

  1. 处理耗时操作(异步编程)
    • 比如:网络请求、读取文件、定时器。程序不能一直等着这些操作完成,所以就先注册一个回调函数,告诉程序“等你完成了再叫我”。
  2. 让代码更灵活(事件处理)
    • 比如:你给一个按钮添加点击事件。
    • button.onClick( function() { alert('你点我了!'); } )
    • 这里 function() { ... } 就是一个回调函数。你把它交给了 onClick 方法,并告诉它:“我不知道用户什么时候会点击,但一旦用户点击了,你就帮我执行这个函数。”

简单来说,回调就是一种“你先忙,忙完叫我”的编程模式。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值