夸克之书

  • 首页
  • 科普
  • 笔记
  • .NET/C#
  • 物联网
  • 算法
  • Linux
  • 树莓派
夸克之内,别有洞天
  1. 首页
  2. 笔记
  3. 正文

谈谈Js的回调函数

2018-09-20 2934点热度 0人点赞 0条评论

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用。既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回。

回调函数是从一个叫函数式编程的编程范式中衍生出来的概念。简单来说,函数式编程就是使用函数作为变量。

学过C#的同学是不是很熟悉,没错,和委托有异曲同工之妙。同样是将函数(方法)作为参数传递。

我们来瞧一瞧在JQuery中常见的一个回调:

//注意到click方法中是一个函数而不是一个变量
//它就是回调函数
$("#btn").click(function() {
  alert("Btn has Clicked");
});   

正如你在前面的例子中看到的,我们将一个函数作为参数传递给了click方法。click方法会调用(或者执行)我们传递给它的函数。这是Javascript中回调函数的典型用法,它在jQuery中广泛被使用。

好了,理解了基本的概念,我们创建一个回调的案例。

//该函数的作用是获取一个在arg1和arg2之间的随机数
function TestRandom(arg1, arg2, callback){
 var num = Math.ceil(Math.random() * (arg1 - arg2) + arg2);
 if ( typeof callback=== "function"){  //判断callback是一个函数
  callback(num);  //执行回调函数
 }
}

//如同编写JQuery一样的语法
TestRandom(10, 20, function(num){
 console.log("Callback called! Num: " + num);  //结果为10和20之间的随机数 
});    

那么什么地方需要用到回调呢? 当函数的实现过程非常漫长,你是选择等待函数完成处理,还是使用回调函数进行异步处理呢?这种情况下,使用回调函数变得至关重要,例如:AJAX请求。若是使用回调函数进行处理,代码就可以继续进行其他任务,而无需空等。实际开发中,经常在javascript中使用异步调用,甚至在这里强烈推荐使用!

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020-12-13

afirefish

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论
放松一下
https://www.quarkbook.com/wp-content/uploads/2021/05/凤凰传奇-海底(Live).flac
分类
  • .NET/C#
  • Linux
  • 树莓派
  • 物联网
  • 科普
  • 笔记
  • 算法
  • 默认
最新 热点 随机
最新 热点 随机
Windows Server 2022安装Intel I225-V驱动 System.Text.Json与Newtonsoft.Json Json序列化与反序列化性能对比 R86S散热改造 Windows移除多余输入法'Unknown Locale (qaa-Latn)' 【算法】具有层级关系的城市,例如"中国 广州","中国 浙江 杭州" 一个 List 最后应该是转成树状图输出 树莓派安装Golang环境
Windows Server 2022安装Intel I225-V驱动
树莓派等ARM开发板C#串口通信(.NET Core) 树莓派.Net Core Iot入门系列篇(3):I2C Visual Studio 2019(VS2019) 密钥/激活码 严肃一点的排序算法(3) – 猴子排序 树莓派4系统下载(集合) C#几种深拷贝方法探究及性能比较
最近评论
afirefish 发布于 2 个月前(11月28日) 非常感谢,非常棒!
》随缘《 发布于 3 个月前(11月20日) 最新【一键处理】方法: https://github.com/MrXhh/VSTools/rele...
管理员 发布于 8 个月前(06月22日) emmmm....服务器好一点???
wking 发布于 9 个月前(05月23日) 请问贵博客是怎么优化的,网页响应速度非常快。我博客同样的WordPress和kratos主题,但点一...
去月球 发布于 1 年前(01月17日) 如果使用CSI的摄像头应该怎么修改命令呢
书签
  • 打赏
  • 毒鸡汤
  • 米店
  • 金鱼直播间

COPYRIGHT © 2022 quarkbook.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备15036129号-9

登录
注册|忘记密码?