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取滚动条的尺寸的函数代码
Nov 30 Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 Javascript
PassWord输入框代码分享
Jun 07 Javascript
JS实现的幻灯片切换显示效果
Sep 07 Javascript
js html css实现复选框全选与反选
Oct 09 Javascript
从零学习node.js之搭建http服务器(二)
Feb 21 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
jquery请求servlet实现ajax异步请求的示例
Jun 03 jQuery
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
基于Three.js实现360度全景图片
Dec 30 Javascript
VUE实现图片验证码功能
Nov 18 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 进程锁定问题分析研究
2009/11/24 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
程序员机试试题汇总
2012/03/07 面试题
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
会计的岗位职责
2014/03/15 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
工作感想范文
2015/08/07 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js