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 ready()的几种实现方法小结
Jun 18 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
Jan 08 Javascript
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
Jan 15 Javascript
鼠标滚轮控制网页横向移动实现思路
Mar 22 Javascript
node.js中的console.trace方法使用说明
Dec 09 Javascript
AngularJS 中的指令实践开发指南(一)
Mar 20 Javascript
Angular JS 生成动态二维码的方法
Feb 23 Javascript
纯JS实现只能输入数字的简单代码
Jun 21 Javascript
p5.js临摹旋转爱心
Oct 23 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
May 24 Javascript
原生JavaScript实现轮播图
Jan 10 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数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
Smarty模板语法详解
2019/07/20 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
javascript生成大小写字母
2015/07/03 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
Python实现单词拼写检查
2015/04/25 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
同事吵架检讨书
2014/02/05 职场文书
公司建议书怎么写
2014/05/15 职场文书
社区工作者演讲稿
2014/05/23 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
Django cookie和session的应用场景及如何使用
2021/04/29 Python