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 相关文章推荐
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
Nov 25 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 Javascript
jQuery瀑布流插件Wookmark使用实例
Apr 02 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
Apr 17 Javascript
JavaScript中具名函数的多种调用方式总结
Nov 08 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
Mar 20 Javascript
AngularJS ng-bind-template 指令详解
Jul 30 Javascript
axios 处理 302 状态码的解决方法
Apr 10 Javascript
微信小程序点击保存图片到本机功能
Dec 13 Javascript
浅谈JavaScript中this的指向更改
Jul 28 Javascript
使用Vant完成通知栏Notify的提示操作
Nov 11 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
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
PHP 循环删除无限分类子节点的实现代码
2013/06/21 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php中socket通信机制实例详解
2015/01/03 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
javascript fullscreen全屏实现代码
2009/04/09 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
JQuery实现动态操作表格
2017/01/11 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
详解如何减少python内存的消耗
2019/08/09 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
《值日生》教学反思
2014/02/17 职场文书
商务英语广告词大全
2014/03/18 职场文书
《秋游》教学反思
2014/04/24 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
2015年工会工作总结
2015/03/30 职场文书
中学教师读书笔记
2015/07/01 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python