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登陆判断简单实现代码
Apr 21 Javascript
Js中的onblur和onfocus事件应用介绍
Aug 27 Javascript
jquery实现背景墙聚光灯效果示例分享
Mar 02 Javascript
js实现遮罩层弹出框的方法
Jan 15 Javascript
浅谈如何实现easyui的datebox格式化
Jun 12 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
Apr 07 Javascript
js前端导出Excel的方法
Nov 01 Javascript
使用express+multer实现node中的图片上传功能
Feb 02 Javascript
微信小程序滑动选择器的实现代码
Aug 10 Javascript
jQuery实现简单全选框
Sep 13 jQuery
四十九个javascript小知识实用技巧
Nov 20 Javascript
JavaScript实现优先级队列
Dec 06 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 session_start()出错原因分析及解决方法
2013/10/28 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
七种PHP开发环境搭建工具
2020/06/28 PHP
javascript面向对象编程代码
2011/12/19 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
Python中max函数用法实例分析
2015/07/17 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
Python中实现switch功能实例解析
2018/01/11 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
python实现的汉诺塔算法示例
2019/10/23 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
英国办公用品商店:Office Outlet
2018/04/04 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
自荐信格式技巧有哪些呢
2013/11/19 职场文书
人力资源经理自我评价
2014/01/04 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
2014年销售员工作总结
2014/12/01 职场文书