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 相关文章推荐
jquery validate.js表单验证的基本用法入门
May 13 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
Apr 21 Javascript
Javascript加载速度慢的解决方案
Mar 11 Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 Javascript
js实现禁止中文输入的方法
Jan 14 Javascript
jQuery中dom元素上绑定的事件详解
Apr 24 Javascript
jQuery的position()方法详解
Jul 19 Javascript
js实现横向伸展开的二级导航菜单代码
Aug 28 Javascript
require.js配合插件text.js实现最简单的单页应用程序
Jul 12 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
Dec 13 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 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 include和require的区别深入解析
2013/06/17 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
vue ssr 指南详读
2018/06/29 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
简单谈谈python基本数据类型
2018/09/26 Python
Python中if有多个条件处理方法
2020/02/26 Python
python3中sys.argv的实例用法
2020/04/24 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
应用化学专业本科生求职信
2013/09/29 职场文书
高中生自我评语大全
2014/01/19 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
入党介绍人评语
2014/05/06 职场文书
先进典型事迹材料
2014/12/29 职场文书
承兑汇票延期证明
2015/06/23 职场文书
运动会1000米加油稿
2015/07/21 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python