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 相关文章推荐
很多人都是用下面的js刷新站IP和PV
Sep 05 Javascript
ExtJs事件机制基本代码模型和流程解析
Oct 24 Javascript
鼠标移到图片上变大显示而不是放大镜效果
Jun 15 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
让你彻底掌握es6 Promise的八段代码
Jul 26 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
Nov 28 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
vue中的 $slot 获取插槽的节点实例
Nov 12 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
PHP 输出简单动态WAP页面
2009/06/09 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
js实现楼层导航功能
2017/02/23 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
Python数据库小程序源代码
2019/09/15 Python
python不同系统中打开方法
2020/06/23 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
我的网上商城创业计划书
2013/12/26 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
党章培训心得体会
2014/09/04 职场文书
解除施工合同协议书
2014/10/17 职场文书
高三毕业评语
2014/12/31 职场文书
婚宴邀请函
2015/01/30 职场文书
环保守法证明
2015/06/24 职场文书
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA