1.什么是回调函数?

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

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

2.回调函数的特点

  (1)自己定义的函数

  (2)你没有调用

  (3)最终它执行了

3.常见的回调函数

  (1)DOM事件回调函数

    

  (2)定时器回调函数

  (3)ajax请求回调函数

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

  (4)生命周期回调函数  

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

4.拓展

  --代码分类

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

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

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

   

  执行结果:

  

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

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

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

JS之回调函数(callback)的更多相关文章

  1. node.js 中回调函数callback(转载),说的很清楚,看一遍就理解了

    最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs.express 的代码就会看得一塌糊涂.比如: 复制代码 代码如下: app.use(fu ...

  2. JS 自定义回调函数callback

    1 应用场景:js的异步加载,在get,post,ajax异步加载的时候,可能对应的请求没有完成,这时需要使用请求回来的数据作为参数调用其他函数,这时就需要使用回调函数. 2 回调函数作用:等待函数调 ...

  3. js回调函数(callback)理解

    Mark! js学习 不喜欢js,但是喜欢jquery,不解释. 自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函 ...

  4. JS回调函数(callback)

    在使用Jquery的时候,用到Callback(),回调函数的概念.而且很多. 比如: $.ajax({ url:"test.json", type: "GET" ...

  5. js回调函数(callback)(转载)

    学习jquery时,对回调函数感觉很困惑,在晚上找了半天,忽然发现这篇文章很浅显,基本说明了问题.故转载 原文: 自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速go ...

  6. 关于js的回调函数的一点看法

    算了一下又有好几个月没写博客了,最近在忙公司android的项目,所以也就很少抽时间来写些东西了.刚闲下来,我就翻了翻之前看的东西.做了android之后更加感觉到手机端开发的重要性,现在做nativ ...

  7. 没办法,还是要补一下js,回调函数(转载)

    <html> <head> <title>回调函数(callback)</title> <script language="javasc ...

  8. 理解javascript中的回调函数(callback)

    以下内容来源于:http://www.jb51.net/article/54641.htm 最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs ...

  9. 解决有关flask-socketio中服务端和客户端回调函数callback参数的问题(全网最全)

    由于工作当中需要用的flask_socketio,所以自己学习了一下如何使用,查阅了有关文档,当看到回调函数callback的时候,发现文档里都描述的不太清楚,最后终于琢磨出来了,分享给有需要的朋友 ...

  10. JS中回调函数的写法

    <!DOCTYPE HTML> <html><head>  <meta charset="GBK" /><title>回 ...

随机推荐

  1. 基于postman的api自动化测试实践

    测试的好处 每个人都同意测试很重要,但并不是所有人都会去做.每当你添加新的代码,测试可以保证你的api按照预期运行.通过postman,你可以为所有api编写和运行测试脚本. postman中的测试 ...

  2. vue + vant 上传图片之压缩图片

    <van-uploader v-model="fileList" multiple :after-read="afterRead" :max-count= ...

  3. PostgreSQL在不同的表空间移动数据文件

    一.背景 在工作中,可能会遇到将表从一个表空间移动另一个表空间.例如 * 对数据进行冷处理 * 表空间所在的磁盘空间不足 * 建表时分配错了表空间 以上等等,可能需要你将一个表移动表空间. 二.表空间 ...

  4. 执行Python程序出现“SyntaxError: Non-UTF-8 code starting with '\xb6'...”错误怎么办?

    如果文件中有中文,直接执行python xx.py会出现以下错误: SyntaxError: Non-UTF- code starting with '\xb6' in file XX.py on l ...

  5. tomcat-8.0.18 cluster 使用Redis共享Session 配置

    事实证明 这位作者提在https://jingyan.baidu.com/article/ac6a9a5e10415f2b653eace8.html 最底下的http://pan.baidu.com/ ...

  6. 本地ubuntu 往阿里云ubuntu服务器传文件

    起因 今天在本地ubuntu搭环境,弄好之后需要把本地的文件传到服务器上去... 本想着用xftp直接拖过去,结果连接不上,可能是我太菜了吧,只好百度找方法··· 这里就简单的记录一下吧~ 步骤 sc ...

  7. STL(常用)

    STL 简单记录.讲解一些初级阶段常用的用法. STL是C++的一个标准模板库,其中包含了许多在计算机领域常用的基本数据结构以及基本算法.STL主要依赖于模板,使得STL具有广泛的通用性.这篇文章旨在 ...

  8. Druid连接池配置全攻略

    Druid是阿里开源出来的数据库连接池,性能非常好,还自带日志监控. 它的DataSource类为:com.alibaba.druid.pool.DruidDataSource. 由于使用的yaml格 ...

  9. [剑指Offer]18-题目一:删除链表的节点 题目二:删除链表中重复节点

    题目一 题目 O(1)时间复杂度删除给定链表节点. 题解 用待删除节点后一个节点的值覆盖待删除节点值,更新链接关系. 注意链表只有一个节点:删除尾结点:删除头节点的处理. 代码 class ListN ...

  10. JDK的安装与环境变量的配置

    一.JDK的安装 1. JDK的下载地址     https://www.oracle.com/java/technologies/javase-downloads.html. 2.  当前最流行的是 ...