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插件之打造自定义的select标签
Nov 30 Javascript
JS获取各种浏览器窗口大小的方法
Jan 14 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
AngularJS 中的事件详解
Jul 28 Javascript
js 两数组去除重复数值的实例
Dec 06 Javascript
karma+webpack搭建vue单元测试环境的方法示例
May 24 Javascript
微信小程序仿RadioGroup改变样式的处理方案
Jul 13 Javascript
chosen实现省市区三级联动
Aug 16 Javascript
在JavaScript中使用严格模式(Strict Mode)
Jun 13 Javascript
vue实现节点增删改功能
Sep 26 Javascript
selenium+java中用js来完成日期的修改
Oct 31 Javascript
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
使用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 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
javascript 写类方式之十
2009/07/05 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
python如何修改装饰器中参数
2018/03/20 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
精选奢华:THE LIST
2019/09/05 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
仓库理货员岗位职责
2013/12/18 职场文书
文明学生标兵事迹
2014/01/21 职场文书
收银出纳员岗位职责
2014/02/23 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python