JS回调函数基本定义与用法实例分析


Posted in Javascript onMay 24, 2017

本文实例讲述了JS回调函数基本定义与用法。分享给大家供大家参考,具体如下:

初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数。

我们先来看看回调的英文定义:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed。

字面上的理解,回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。

其实也很好理解对吧,回调,回调,就是回头调用的意思。主函数的事先干完,回头再调用传进来的那个函数。但是以前看过很多博客,他们总是将回调函数解释的云里雾里,很高深的样子。

举一个别人举过的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你。” 对不,然后你女朋友回家以后还真给你发了条信息。小伙子,你有戏了。其实这就是一个回调的过程。你留了个参数函数(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是主函数。她必须先回到家以后,主函数执行完了,再执行传进去的函数,然后你就收到一条信息了。

现在基本理解回调函数的意思了吧。不理解的话没关系,我们用代码说话。

//定义主函数,回调函数作为参数
function A(callback) {
  callback();
  console.log('我是主函数');
}
//定义回调函数
function B(){
  setTimeout("console.log('我是回调函数')", 3000);//模仿耗时操作
}
//调用主函数,将函数B传进去
A(B);
/*
输出结果
我是主函数
我是回调函数
*/

上面的代码中,我们先定义了主函数和回调函数,然后再去调用主函数,将回调函数传进去。

定义主函数的时候,我们让代码先去执行callback()回调函数,但输出结果却是后输出回调函数的内容。这就说明了主函数不用等待回调函数执行完,可以接着执行自己的代码。所以一般回调函数都用在耗时操作上面。比如ajax请求,比如处理文件等。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery 实现的全选和反选
Apr 15 Javascript
jQuery学习笔记之jQuery的DOM操作
Dec 22 Javascript
js 动态加载事件的几种方法总结
Dec 25 Javascript
详细分析JavaScript函数定义
Jul 16 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
Jan 23 Javascript
canvas 实现中国象棋
Feb 17 Javascript
vue组件如何被其他项目引用
Apr 13 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
Javascript防止图片拉伸的自适应处理方法
Dec 26 Javascript
Node.js使用Koa搭建 基础项目
Jan 08 Javascript
详解vue 路由跳转四种方式 (带参数)
Apr 28 Javascript
vue3.0 的 Composition API 的使用示例
Oct 26 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 #jQuery
详解前后端分离之VueJS前端
May 24 #Javascript
JQuery Ajax 异步操作之动态添加节点功能
May 24 #jQuery
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
May 24 #Javascript
使用jQuery.Pin垂直滚动时固定导航
May 24 #jQuery
bootstrap table使用入门基本用法
May 24 #Javascript
Vue动态实现评分效果
May 24 #Javascript
You might like
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
移动端js图片查看器
2016/11/17 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
python中get和post有什么区别
2020/06/19 Python
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
青年教师培训方案
2014/02/06 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
谢师宴邀请函
2015/02/02 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python