博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS回调函数全解析教程
阅读量:5287 次
发布时间:2019-06-14

本文共 1422 字,大约阅读时间需要 4 分钟。

自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗。迅速google之,发现原来中文翻译成回调。也就是回调函数 了。不懂啊,于是在google回调函数,发现网上的中文解释实在是太“深奥”了,我承认自己才疏学浅了。看了几个回调的例子后,貌似有点理解了。下面是 我对回调函数的理解,要是理解错了,请指正,不甚感激。

        首先还是从jquery网站上的英文定义入手,身为国人,我真感到悲剧。一个回调的定义被国内的“高手”解释成什么样,就在那绕圈子,貌似只有把你绕进去了,他才算高手。浮云,一切都是浮云。

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

这是js里的解释了,其他语言的算我没说。

字面上理解下来就是,回调就是一个函数的调用过程。那么就从理解这个调用过程开始吧。函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫回调。

其实中文也很好理解:回调,回调,就是回头调用的意思。函数a的事先干完,回头再调用函数b。

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

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

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

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

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

下面用代码来证实我的理解。

 

[html]
    1. <html>   
    2.    
    3. <head>   
    4.    
    5. <title>回调函数(callback)</title>   
    6. <script language="javascript" type="text/javascript">   
    7. function a(callback)   
    8. {      
    9.    alert("我是parent函数a!");   
    10.     alert("调用回调函数");   
    11.     callback();   
    12. }   
    13. function b(){   
    14. alert("我是回调函数b");   
    15.   
    16. }   
    17. function c(){   
    18. alert("我是回调函数c");   
    19.   
    20. }   
    21.   
    22. function test()   
    23. {   
    24.     a(b);   
    25.    a(c);   
    26. }   
    27.   
    28. </script>   
    29. </head>   
    30.    
    31. <body>   
    32. <h1>学习js回调函数</h1>   
    33. <button onClick=test()>click me</button>   
    34. <p>应该能看到调用了两个回调函数</p>   
    35. </body>   
    36.    
    37. </html

转载于:https://www.cnblogs.com/ihanliu/p/5756006.html

你可能感兴趣的文章
centos7 关闭防火墙
查看>>
04-jQuery的属性操作
查看>>
response实现文件下载
查看>>
【WP7】页面之间数据交互
查看>>
C++中的unique函数
查看>>
小白学数据分析----->流失分析设计
查看>>
FontAwesome 奥森图标的学习
查看>>
request response cookie session
查看>>
NMON记录服务器各项性能数据
查看>>
未找到arm-linux-gcc解决办法
查看>>
统计Xcode项目代码行数
查看>>
认识 service worker
查看>>
第五次团队作业:项目展示
查看>>
C#面向对象(二):封装和继承
查看>>
range()函数
查看>>
少量标签下的模型
查看>>
HOJ-1005 Fast Food(动态规划)
查看>>
FasfDFS整合Java实现文件上传下载
查看>>
用Hadoop构建电影推荐系统
查看>>
[读码时间] 弹出层效果
查看>>