回调函数的理解和使用

一时失言乱红尘 2023-02-12 14:28 14阅读 0赞

什么是回调函数?下面举了两个例子

例:

你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。

在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。【此段文字来自 知乎 - 常溪玲的回答 -】什么是回调函数

例:

打个比方,有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法。可以是打客房电话,也可以是派服务员去敲门,睡得死怕耽误事的,还可以要求往自己头上浇盆水。这里,“叫醒”这个行为是旅馆提供的,相当于库函数,但是叫醒的方式是由旅客决定并告诉旅馆的,也就是回调函数。而旅客告诉旅馆怎么叫醒自己的动作,也就是把回调函数传入库函数的动作,称为登记回调函数(to register a callback function)。【此段文字来自 知乎 - no.body的回答 -】什么是回调函数?


百度百科中定义:

如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

在JavaScript中,回调函数具体的定义为:

函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。

如果没有名称(函数表达式),就叫做匿名回调函数。


回调函数应用场景

  • 资源加载:ajax异步请求,动态加载js文件后执行回调,加载iframe后执行回调,图片加载完成执行回调…
  • 链式调用
  • setTimeout、setInterval的函数调用得到其返回值。【setTimeout、setInterval独立主体调用,用callback将执行结果传递给代理函数处理】

实例:

  1. function fn(callback) {
  2. setTimeout(function () {
  3. const data = 'fn'
  4. callback(data)
  5. }, 0)
  6. }
  7. // 如果需要获取一个函数中异步操作的结果,则必须通过回调函数来获取
  8. fn(function (arg) {
  9. console.log(arg) // fn
  10. })

发表评论

表情:
评论列表 (有 0 条评论,14人围观)

还没有评论,来说两句吧...

相关阅读

    相关 理解函数

    深入浅出理解Node.js中的回调函数(callback) > 究竟什么是回调函数(Callback),网上有许许多多的文章,大部分看得人云里雾外,这些文章大概分成两类,

    相关 函数理解使用

    什么是回调函数?下面举了两个例子 例: 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就

    相关 函数理解

    函数指针的用途,一般是在回调函数中使用,那么回调函数是干什么用的了? C++ Primer Plus中举了这样一个列子: 假设我们要设计一个名为estimate()的函数,

    相关 js中函数理解使用

    一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数。 二. 回调函数的解释 因为函数