什么是callback?
  回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
这个解释看上去很复杂,于是找到了知乎上一个更好的解释
  你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。
在Javascript中:
  函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。
实际上,也就是把函数作为参数传递。
Javscript Callback
  把上面那些复杂的解释都丢到垃圾桶里吧~,看看Callback是什么
Callback是什么?
在jQuery中, hide的方法大概是这样子的

$(selector).hide(speed,callback)

使用的时候,

$('#element').hide(1000, function() {// callback function
});

我们只需要在里面写一个简单的函数

$('#element').hide(1000, function() {console.log('Hide');
});

有一个小小的注释在这其中:Callback 函数在当前动画 100% 完成之后执行。然后我们就可以看到真正的现象,当id为element的元素隐藏后,会在console中输出Hide。
  就也就意味着,Callback实际上是,当一个函数执行完后,现执行的那个函数就是所谓的callback函数。
Callback作用
  正常情况下函数都是按顺序执行的,然而Javascript是一个事件驱动的语言。

function hello(){console.log('hello');
}
function world(){console.log('world');
}
hello();
world();

所以正常情况下都会按顺序执行的,然而当执行world事件的时间比较长时。
复制代码 代码如下:

function hello(){setTimeout( function(){console.log( 'hello' );}, 1000 );
}
function world(){console.log('world');
}
hello();
world();

那么这个时候就不是这样的,这时会输出world,再输出hello,故而我们需要callback。
Callback实例
一个简单地例子如下

function add_callback(p1, p2 ,callback) {var my_number = p1 + p2;callback(my_number);
}
add_callback(5, 15, function(num){console.log("call " + num);
});

在例子中我们有一个add_callback的函数,接收三个参数:前两个是要相加的两个参数,第三个参数是回调函数。当函数执行时,返回相加结果,并在控制台中输出'call 20'。

转载于:https://www.cnblogs.com/qingsong/p/6763155.html

Javascript中的Callback方法浅析相关推荐

  1. Javascript中二进制数据处理方法

    Javascript中二进制数据处理方法 转载于:https://www.cnblogs.com/motadou/archive/2012/02/19/2358514.html

  2. php中使用confirm,如何使用JavaScript中的confirm()方法

    confirm方法的使用:通过给元素设置confirm函数来创建一个带有确认和取消按钮的提示框,当点击确认时返回true,取消时返回false 今天将讲解JavaScript中confirm() 方法 ...

  3. JavaScript 中的forEach()方法

    JavaScript 中的forEach方法 一.forEach()的定义和用法? 1.第一个是数组的每一项值(必选) 2.第二个是数组下标(可选) 3.第三个是原数组(可选) 4.forEach() ...

  4. JavaScript中的valueOf方法详解

    Object.prototype.valueOf() valueOf() 方法返回指定对象的原始值. 语法 object.valueOf() 返回值 返回值为该对象的原始值. 描述 JavaScrip ...

  5. JavaScript中的部分函数/方法参考

    目录 1.Object.defineProperty方法 2.for.for...in.for...of.forEach方法 for循环(可使用return.break等来中断循环) forEach循 ...

  6. c语言中foreach的用法,详解JavaScript中的forEach()方法的使用

    JavaScript数组的 forEach()方法调用数组中的每个元素. 语法 array.forEach(callback[, thisObject]); 下面是参数的详细信息: callback ...

  7. 15+ Javascript 中的数组方法

    什么是 JS 中的数组? Array 对象与其他编程语言中的数组一样,可以将多个项目的集合存储在单个变量名下,并具有用于执行常见数组操作的成员. 声明数组 我们可以用两种不同的方式声明数组. 使用新数 ...

  8. 分享20个Javascript中的数组方法,收藏

    什么是数组?与其他编程语言中的数组一样,Array对象允许在一个变量名称下存储多个项的集合,并且具有用于执行常见数组操作的成员. 声明数组 我们可以用两种不同的方式声明数组. 使用新阵列 使用new ...

  9. js中every用法_详解JavaScript中的every()方法

    JavaScript 数组中的每个方法测试数组中的所有元素是否经过所提供的函数来实现测试. 语法 array.every(callback[, thisObject]); 下面是参数的详细信息: ca ...

最新文章

  1. 工作一年的状态与总结
  2. linux下g编译文件或目录,【转】在linux下使用gcc/g++编译多个.h文件
  3. MySQL数据库使用(二):配置、连接远端数据库
  4. 我就是古董店的那个店小二……专司收藏……
  5. 使用 Strace 和 GDB 调试工具的乐趣
  6. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·007
  7. typora markdown 标题自动编号
  8. vue-cli 打包出来的文件缺少_Vue cli构建 及 项目打包以及出现的问题 (update 2020-05)...
  9. cxf整合spring发布webservices服务端
  10. Ms visio 下载
  11. 用计算机音乐的歌词,电脑酷狗音乐怎么在屏幕上显示歌词
  12. Oracle字符串操作[转:http://www.cnblogs.com/xd502djj/archive/2010/08/11/1797577.html]
  13. ENSPAC的web配置直接转发
  14. 互联网早报:京东健康宠物医院上线:注册医生超3000名 提供7X24在线健康咨询服务
  15. initiator、target、lun之间的映射
  16. 【ROS系列】运行rosrun topic_demo talker出错
  17. 读书笔记 |《小强升职记》
  18. nr技术之---MIMO
  19. Unity-VolumeLighting组件(体积雾/光效果)使用小记
  20. 获取搜狗音乐的真实路径方法

热门文章

  1. (素材源码)猫猫学IOS(十六)UI之XIB自定义Cell实现团购UI
  2. 蓝桥杯——说好的进阶之去反复元素的排列组合
  3. 元素算法Bloom Filter
  4. 网页的手机版本是否值得去做?,互联网营销
  5. SwiftUI编辑文字和图片
  6. win7如何更改文件类型_教你win7局域网设置方法
  7. 在单链表写入一组数据代码_链表常见操作和15道常见面试题
  8. linux nacos启动_nacos初体验-踩坑与填坑篇
  9. python3.8自带matlop和numpy吗_Python enlop包_程序模块 - PyPI - Python中文网
  10. “万能钥匙”可以打开大脑:脑刺激个性化医疗的新领域