JS中的回调函数实例浅析


Posted in Javascript onMarch 21, 2018

本文实例讲述了JS中的回调函数。分享给大家供大家参考,具体如下:

在说回调函数之前,不妨先看一段代码,相信有点js基础的同学都能明白他的含义:

document.getElementById('demo').click=function(){
  alert(1);
};

这段代码其实就是一段事件回调,这样写看的其实相对模糊一些,我们不妨看下接下来的代码

document.getElementById('demo').addEventListener('click',function(){
    alert(1)
});

这两段代码的所做的事情其实相同,不同的只是写法的差异,我们看这个addEventListener('eventName',callback)addEventListener这个函数有两个参数,第一个为事件名称,第二个参数实际上就是回掉函数,按照书上来说回调函数的方式,函数中的参数既然可以是变量,那么他也可以是一个函数。可能说到这里大家对回掉函数还是一脸懵逼。我们再看接下来这个例子。

function demo(a,b,callback){
    let c=a+b;
    callback(c);
};
demo(1,2,function(c){
    alert(c);//3
})

这段代码定义了一个demo函数,这个函数有三个参数a,b,callback,我们在这个函数内部声明了一个局部变量c,然后执行我们的callback(回调函数),接下来执行demo这个函数

这个函数的三个参数如上,在回掉函数中弹出的为3。这就是一个简单的回调函数。而要想真正理解回调函数的意义,其实我觉得还是在于明白他的用途,只有明白他的用途了我们才可以真正的去理解他。

回调函数最多的应用场景就是异步操作,因为异步的操作我们不知道这个操作到底何时结束,那么我们后续执行的代码就无法按照应有的流程走下去。

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

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

Javascript 相关文章推荐
Javascript 不能释放内存.
Sep 07 Javascript
键盘控制事件应用教程大全
Nov 24 Javascript
Jquery获得控件值的三种方法总结
Feb 13 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
May 28 Javascript
js使用递归解析xml
Dec 12 Javascript
jQuery通过deferred对象管理ajax异步
May 20 Javascript
Javascript 事件冒泡机制详细介绍
Oct 10 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 Javascript
vue引入axios同源跨域问题
Sep 27 Javascript
微信小程序引用iconfont图标的方法
Oct 22 Javascript
js实现计算器功能
Aug 10 Javascript
使用Vue制作图片轮播组件思路详解
Mar 21 #Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
Mar 21 #Javascript
JS实现遍历不规则多维数组的方法
Mar 21 #Javascript
vue项目关闭eslint校验
Mar 21 #Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
Mar 21 #Javascript
使用Vue.js和Flask来构建一个单页的App的示例
Mar 21 #Javascript
JS代码实现电脑配置检测功能
Mar 21 #Javascript
You might like
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
谈谈新手如何学习PHP
2006/12/23 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
javascript学习之json入门
2016/12/22 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
js实现详情页放大镜效果
2020/10/28 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
Python实现的检测网站挂马程序
2014/11/30 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
服装厂厂长职责
2013/12/16 职场文书
幼儿教师思想汇报
2014/01/10 职场文书
责任心演讲稿
2014/05/14 职场文书
单位租车协议书
2015/01/29 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Python实现位图分割的效果
2021/11/20 Python
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers