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 06 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
Jan 13 Javascript
jQuery插件开发全解析
Oct 10 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
Dec 11 Javascript
JavaScript 实现鼠标拖动元素实例代码
Feb 24 Javascript
简单谈谈javascript代码复用模式
Jan 28 Javascript
详解Bootstrap glyphicons字体图标
Jan 04 Javascript
Webpack中publicPath路径问题详解
May 03 Javascript
在vue项目中引入highcharts图表的方法
Jan 21 Javascript
新手快速入门微信小程序组件库 iView Weapp
Jun 24 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 jQuery
如何在 Vue 表单中处理图片
Jan 26 Vue.js
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字符串过滤,转换函数代码
2012/05/01 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
Python文件夹与文件的操作实现代码
2014/07/13 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
Django的信号机制详解
2017/05/05 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
django 简单实现登录验证给你
2019/11/06 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
Python装饰器用法与知识点小结
2020/03/09 Python
浅析Python 序列化与反序列化
2020/08/05 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
实现向右循环移位
2014/07/31 面试题
新员工入职感言
2014/02/01 职场文书
九年级政治教学反思
2014/02/06 职场文书
党员思想汇报材料
2014/12/19 职场文书
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL