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 相关文章推荐
js文件包含的几种方式介绍
Sep 28 Javascript
jQuery中extend()和fn.extend()方法详解
Jun 03 Javascript
easyui Droppable组件实现放置特效
Aug 19 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
js 图片转base64的方式(两种)
Apr 24 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 Javascript
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
vue 组件的封装之基于axios的ajax请求方法
Aug 11 Javascript
vue监听input标签的value值方法
Aug 27 Javascript
利用Vue实现一个markdown编辑器实例代码
May 19 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 连接mysql连接被重置的解决方法
2011/02/15 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
PHP内核探索:变量概述
2014/01/30 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
vue生命周期的探索
2019/04/03 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
python使用thrift教程的方法示例
2019/03/21 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
python模拟实现斗地主发牌
2020/01/07 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
毕业生就业自荐书
2013/12/15 职场文书
校园达人秀策划书
2014/01/12 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
违纪开除通知书
2015/04/25 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
会议室管理制度范本
2015/08/06 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python