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 编程引入命名空间的方法与代码
Aug 13 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
Oct 13 Javascript
JS中的public和private对象,即static修饰符
Jan 18 Javascript
jquery 通过name快速取值示例
Jan 24 Javascript
整理AngularJS中的一些常用指令
Jun 16 Javascript
java必学必会之static关键字
Dec 03 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
jQuery中过滤器的基本用法示例
Oct 11 jQuery
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
May 21 Javascript
微信小程序实现原生步骤条
Jul 25 Javascript
使用Vue调取接口,并渲染数据的示例代码
Oct 28 Javascript
修改Vue打包后的默认文件名操作
Aug 12 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
如何给phpadmin一个保护
2006/10/09 PHP
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现人人网登录示例分享
2014/01/19 Python
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
心理咨询承诺书
2014/05/20 职场文书
企业文化宣传标语
2014/06/09 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
农村文化活动总结
2014/08/28 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
电影建国大业观后感
2015/06/01 职场文书
读书笔记怎么写
2015/07/01 职场文书
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android