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实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
javascript innerText和innerHtml应用
Jan 28 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
Apr 02 Javascript
jquery 获取表单元素里面的值示例代码
Jul 28 Javascript
javascript屏蔽右键代码
May 15 Javascript
javascript中定义类的方法详解
Feb 10 Javascript
JavaScript中的fontsize()方法使用详解
Jun 08 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
vue-router 中router-view不能渲染的解决方法
May 23 Javascript
Echarts地图添加引导线效果(labelLine)
Sep 30 Javascript
JavaScript实现拖拽效果
Mar 16 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 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 5.0对象模型深度探索之对象复制
2008/03/27 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
应届生煤化工求职信
2013/10/21 职场文书
优秀应届生求职信
2014/06/16 职场文书
高中体育课教学反思
2016/02/16 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
python_tkinter弹出对话框创建
2022/03/20 Python
Python循环之while无限迭代
2022/04/30 Python