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 选择器引擎sizzle浅析
Feb 06 Javascript
JAVASCRIPT函数作用域和提前声明 分享
Aug 22 Javascript
JS正则表达式大全(整理详细且实用)
Nov 14 Javascript
Javascript Object 对象学习笔记
Dec 17 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
Jan 20 Javascript
微信小程序实现富文本图片宽度自适应的方法
Jan 20 Javascript
vue学习之Vue-Router用法实例分析
Jan 06 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 Javascript
Jquery cookie插件实现原理代码解析
Aug 04 jQuery
基于JavaScript的数据结构队列动画实现示例解析
Aug 06 Javascript
vue npm install 安装某个指定的版本操作
Aug 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
很实用的一个完整email发送程序
2006/10/09 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
自己的js工具 Cookie 封装
2009/08/21 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
python操作redis的方法
2015/07/07 Python
Python过滤列表用法实例分析
2016/04/29 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python简单贪吃蛇开发
2019/01/28 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
python实现查找所有程序的安装信息
2020/02/18 Python
python实现视频压缩功能
2020/12/18 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
中药专业大学生医药工作求职信
2013/10/25 职场文书
十佳青年个人事迹材料
2014/01/28 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
看雷锋电影观后感
2015/06/10 职场文书
七一活动主持词
2015/06/29 职场文书
求职自我评价参考范文
2019/05/16 职场文书