美文网首页
关于JS中回调函数的个人理解

关于JS中回调函数的个人理解

作者: Jack_陈 | 来源:发表于2018-01-22 22:31 被阅读0次

近期在看到jQuery中test(index,test)的用法涉及到回调函数,之前未有涉及,于今晚专门看看了看,将个人对于回调函数的理解感悟记录一下,有不正确的地方希望指出。

回调函数(callback),英文中的解释其实更容易理解:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.下面我以拙劣的英文翻译下,回调函数是指函数b被当做函数a的参数使用,且当函数a执行完毕后才会执行函数a。

这里说个题外话,异步async/同步sync

举个栗子:

1.异步:早上起来拉屎,擦屁股,这个肯定是要拉完屎才能擦屁股,不能一边拉屎一边擦屁股,这样擦屁股就没有任何意义,这就是异步。

2.同步:早上起床,你可以坐在马桶上一边拉屎一边抠鼻屎,二者没有任何影响,可同时进行,上下通透,这就是 同步。

来段异步代码示例:

栗子 结果

以上代码会先执行函数a,而且不会等到a中的延迟函数执行完才执行函数b, 在延迟函数被触发的过程中就执行了函数b,当js引擎的event 队列空闲时才会去执行队列里等待的setTimeout的回调函数,这就是一个异步的例子。

所以即使,时间设置为0,也是会照样先执行函数b

来段同步代码示例

结果输出1

print函数会等change函数完成之后去执行,所以结构输出为1,因为change函数修改了全局变量a的值,change执行之后才执行的print函数。

回到回调函数的正题。下面再举个从其他博主那里看到的栗子(果然别人家的栗子好吃):

举个现实的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你。”对不,然后你女朋友回家以后还真给你发了条信息。小伙子,你有戏了。

其实这就是一个回调的过程。你留了个函数b(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是函数a。她必须先回到家以后,函数a的内容执行完了,再执行函数b,然后你就收到一条信息了。

这里必须清楚一点:函数b是你以参数形式传给函数a的,那么函数b就叫回调函数。

相信到这里大家已经对callback有一定的认识了,下面上代码:

function  shit(clean_ass)   

{      

   alert("我是函数shit");   

    alert("shit完我会调用clean_ass来清理我的菊花");   

    clean_ass();   

}   

function clean_ass(){   

alert("我要清理我的菊花了");   

}   

function all_action(){

shit(clean_ass);

}

这样你就完成了拉屎的动作(先拉屎,后清理菊花),如有疏漏之处,烦请指出。

相关文章

  • 关于JS中回调函数的个人理解

    近期在看到jQuery中test(index,test)的用法涉及到回调函数,之前未有涉及,于今晚专门看看了看,将...

  • 回调函数的一点点补充

    之前自己有总结过一些关于js中回调函数的知识了,此次主要是补充一些关于回调函数中的参数的来源的东西 在使用回调函数...

  • 2019-12-01

    JS中回调函数(callback)理解https://blog.csdn.net/undericon/articl...

  • 关callback的使用和认识

    关于js中的回调函数callback 前言 其实我一直很困惑关于js 中的callback,困惑的原因是,学习中这...

  • JS-回调函数、省份显示

    省份简称与省份全称 js,如何把省份简称转换成省份全称 callback回调函数 JS中回调函数(callback...

  • 关于 js 回调函数

    在 js 中,回调函数的写法必须是将待触发后执行的命令写在一个新函数体内 一个典型的例子是事件监听函数 不能写成 ...

  • 关于js中的回调函数callback

    前言 其实我一直很困惑关于js 中的callback,困惑的原因是,学习中这块看的资料少,但是平时又经常见,偶尔复...

  • js 彻底理解回调函数

    一、前奏 在谈回调函数之前,先看下下面两段代码:不妨猜测一下代码的结果。 如果你测试了,就会发现: 二、js中函数...

  • JS回调函数理解

    定义 将函数A作为参数传入函数B,当函数B执行完成后,再执行传入的函数A,这个过程就是回调,函数A就是函数B的回调...

  • JavaScript中的回调函数

    JS中的回调函数 示例: // 定义一个函数 function clb(callback) { aler...

网友评论

      本文标题:关于JS中回调函数的个人理解

      本文链接:https://www.haomeiwen.com/subject/xywraxtx.html