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 相关文章推荐
利用ASP发送和接收XML数据的处理方法与代码
Nov 13 Javascript
JS图片无缝滚动(简单利于使用)
Jun 17 Javascript
jQuery实现当按下回车键时绑定点击事件
Jan 28 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
Apr 16 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
Javascript简单实现面向对象编程继承实例代码
Nov 27 Javascript
原生JS实现平滑回到顶部组件
Mar 16 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
Jun 24 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
React Native 集成jpush-react-native的示例代码
Aug 16 Javascript
JS遍历DOM文档树的方法实例详解
Apr 03 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下MAIL的另一解决方案
2006/10/09 PHP
我的论坛源代码(四)
2006/10/09 PHP
PHP获取文件行数的方法
2015/06/10 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
Python中面向对象你应该知道的一下知识
2019/07/10 Python
Python通过文本和图片生成词云图
2020/05/21 Python
python Xpath语法的使用
2020/11/26 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
致800米运动员广播稿
2014/02/16 职场文书
活动总结新闻稿
2014/08/30 职场文书
英文辞职信范文
2015/05/13 职场文书
高中地理教学反思
2016/02/19 职场文书
如何书写邀请函?
2019/06/24 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python