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 相关文章推荐
Jquery下attr和removeAttr的使用方法
Dec 28 Javascript
js控制表单操作的常用代码小结
Aug 15 Javascript
JavaScript对IE操作的经典代码(推荐)
Mar 10 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
Apr 12 Javascript
js给selected添加options的方法
May 06 Javascript
AngularJS中的过滤器使用详解
Jun 16 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
Jun 02 Javascript
Javascript随机标签云代码实例
Jun 21 Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 Javascript
微信小程序 基础知识css样式media标签
Feb 15 Javascript
浅谈React之状态(State)
Sep 19 Javascript
vue实现鼠标移入移出事件代码实例
Mar 27 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
php数组函数序列之in_array() - 查找数组中是否存在指定值
2011/11/07 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
计算机软件个人的自荐信范文
2013/12/01 职场文书
历史教育专业个人求职信
2013/12/13 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
食品采购员岗位职责
2014/04/14 职场文书
挂职学习心得体会
2014/09/09 职场文书
申报优秀教师材料
2014/12/16 职场文书
毕业赠语大全
2015/06/23 职场文书
边城读书笔记
2015/06/29 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers
PyTorch中的torch.cat简单介绍
2022/03/17 Python