1.什么是回调函数?

  -- 简单点说,一个函数被作为参数传递给另一个函数(在这里我们把另一个函数叫做“otherFunction”),回调函数在otherFunction中被调用。

  --可以是匿名函数也可以是命名函数

2.回调函数的特点

  (1)自己定义的函数

  (2)你没有调用

  (3)最终它执行了

3.常见的回调函数

  (1)DOM事件回调函数

    

  (2)定时器回调函数

  (3)ajax请求回调函数

    略。(后续相应内容补充)

  (4)生命周期回调函数  

    略。(后续相应内容补充)

4.拓展

  --代码分类

    (1)初始化代码:一般的代码,包括设置定时器,绑定监听,发送ajax请求……

    (2)回调代码:回调函数的代码

  JavaScript引擎,在执行代码时,先执行初始化代码,等到初始化代码全部执行结束时,再执行回调代码。

   

  执行结果:

  

  重上述案例中,我们可以 看到回调函数不管在整个代码的什么位置,它都要比初始化代码执行完后才会执行。

  上述代码执行流程:前两代码打开了定时器,此时JavaScript引擎将回调函数,和设置的时间交给定时器管理模块(事件管理模块),待到事件触发时,回调函数加入到回调队列中(callback queue),此时处于待处理状态。如果初始化代码全部执行结束,才会循环遍历回调队列中的回调函数。在上述代码中先加入队列的是延时时间为0ms的定时器,然后才是2000ms的定时器,由于队列的特性是先进先出,所以两个定时器间,先执行第二个定时器,在执行第一个定时器。

(此处涉及到时间循环模型,后续内容会补充,这里我们只需要大致了解回调函数是什么时候执行的)

最新文章

  1. SQL优化技术分析-3:SQL语句索引的利用
  2. LVM增大和减小ext4、xfs分区
  3. Elasticsearch安装
  4. Web性能--TCP的构成
  5. 即时通讯(IM-instant messager)
  6. BZOJ2080 : [Poi2010]Railway
  7. MVC项目中验证码的使用
  8. VPS常用工具
  9. [转]oracle10.2.0.1下载链接
  10. UNIX标准化及实现之选项
  11. VA自动补全QT
  12. Properties类读写.properties配置文件
  13. 【Java学习笔记之二十八】深入了解Java8新特性
  14. Sublime Text3 离线安装Package Control并使用GBK编码 --转自https://blog.csdn.net/swhard/article/details/78930371
  15. Android Studio RecyclerView用法
  16. Linux并发与同步专题 (4) Mutex互斥量
  17. (15)线程---Condition条件
  18. 数列分块入门九题(二):LOJ6280~6282
  19. Structs复习 命名空间
  20. 分布式Redis主备复制

热门文章

  1. dlopen代码详解——从ELF格式到mmap
  2. 2020.08.23 瞎扯周记之论短暂假期(QAQ)内要不要睡午觉
  3. iOS 报错: linker command failed with exit code 1 (use -v to see invocation) 原因
  4. 【IDEA】【SpringBoot】基于idea对springboot程序远程调试
  5. Java中nextInt和nextLine同时使用出现的问题
  6. 使用fiddler和安卓模拟器抓取安卓客户端数据包
  7. jmeter中接口测试出现乱码或不识别中文解决办法
  8. python变量及简单数据类型
  9. 《方法总结》C路的方法发现
  10. Linux实战(2):Linux传输文件