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对文字按照拼音排序实现代码
Dec 27 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
jQuery DOM删除节点操作指南
Mar 03 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
Oct 19 Javascript
多种方式实现js图片预览
Dec 12 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
Jul 11 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
Dec 24 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 Javascript
Vue.directive使用注意(小结)
Aug 31 Javascript
layui实现下拉框三级联动
Jul 26 Javascript
基于JS实现父组件的请求服务过程解析
Oct 14 Javascript
javascript进阶篇深拷贝实现的四种方式
Jul 07 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开发中页面乱码的产生与解决
2008/03/27 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
就业意向书范文
2014/04/01 职场文书
班主任评语大全
2014/04/26 职场文书
2014年党支部承诺书
2014/05/30 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
教育见习报告范文
2014/11/03 职场文书
小学生家长意见
2015/06/03 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers