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同辈元素选中/未选中效果的实例代码
Aug 01 Javascript
JQuery跳出each循环的方法
Apr 16 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
Jan 05 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
Apr 01 Javascript
vue-quill-editor实现图片上传功能
Aug 08 Javascript
electron demo项目npm install安装失败的解决方法
Feb 06 Javascript
vue favicon设置以及动态修改favicon的方法
Dec 21 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
Feb 18 Javascript
layui的数据表格+springmvc实现搜索功能的例子
Sep 28 Javascript
vue引用外部JS的两种种方法
Jan 28 Javascript
我所理解的JavaScript中的this指向
Sep 04 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
jQuery1.6 使用方法一
2011/11/23 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
javascript版2048小游戏
2015/03/18 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
django中嵌套的try-except实例
2020/05/21 Python
Python绘制动态水球图过程详解
2020/06/03 Python
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
医学专业大学生求职信
2014/07/12 职场文书
青涩记忆观后感
2015/06/18 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技