JavaScript回调(callback)函数概念自我理解及示例


Posted in Javascript onJuly 04, 2013

此文适合JavaScript入门级选手阅读,高手就可以飘过了。

先扯点闲话。在中国,有这么一种现象:不管什么词或者概念,总会有些人把这些东西解释的神乎其神,貌似搞得别人听不懂就觉得自己很厉害的样子。其实不知道有多2。我个人比较崇尚简洁明了。什么词,什么概念,如果你能用简短的一两句话让大家听明白,这才是本事。好了,闲话不扯了,进入正题。

在JavaScript里什么叫Callback“回调函数”,用我的话来讲就是把方法b当做一个参数传递个方法a,当方法a执行完后执行另外一个指定函数(这里是b函数)。来看个列子:

<html> 
<head> 
<title>Callback function test</title> 
<script language="javascript" type="text/javascript"> 
function main(callback) 
{ 
alert("I am main function"); 
alert("Invoke callback function.."); 
callback(); 
} 
function b(){ 
alert("I am callback function: b"); 
} 
function c(){ 
alert("I am callback function: c"); 
} function test() { 
main(b); 
main(c); 
} 
</script> 
</head> 
<body> 
<button onClick="test()">click me</button> 
</body> 
</html>

这里面main(b),那么b就称作回调函数,是不是很好理解?那有人会说我为什么不可以把b的调用放到main函数里呢?确实可以,但是那样你的main方法就只能调用b了。这里我们将b传递个main,或者a传递个main,那main里面的callback方法就是动态的回调函数。优点就在这里。
Javascript 相关文章推荐
javascript dom 操作详解 js加强
Jul 13 Javascript
JQUERY dialog的用法详细解析
Dec 19 Javascript
js实现具有高亮显示效果的多级菜单代码
Sep 01 Javascript
Bootstrap零基础入门教程(三)
Jul 18 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
Jan 12 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
Jan 20 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
three.js实现3D视野缩放效果
Nov 16 Javascript
JS简单实现动态添加HTML标记的方法示例
Apr 08 Javascript
webpack打包html里面img后src为“[object Module]”问题
Dec 22 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
Dec 29 Javascript
关于Js中new操作符的作用详解
Feb 21 Javascript
JS实现简单的Canvas画图实例
Jul 04 #Javascript
Jquery获取复选框被选中值的简单方法
Jul 04 #Javascript
jquery和javascript的区别(常用方法比较)
Jul 04 #Javascript
JS定时刷新页面及跳转页面的方法
Jul 04 #Javascript
浏览器打开层自动缓慢展开收缩实例代码
Jul 04 #Javascript
深入解析contentWindow, contentDocument
Jul 04 #Javascript
关于Javascript与iframe的那些事儿
Jul 04 #Javascript
You might like
NOT NULL 和NULL
2007/01/15 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
vue中mint-ui的使用方法
2018/04/04 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
Python语言快速上手学习方法
2018/12/14 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
毕业实习单位意见
2015/06/04 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python