UpdateTime--2018年9月13日16点51分

1.什么是回调函数?

  在JavaScript中,回调函数具体的定义为:

  函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数;

  如果没有名称(函数表达式),就叫做匿名回调函数。

  简单的来说,将函数作为参数传递给另一个方法。

2.回调函数适用场合

  jquery 页面加载完毕  $(function(){"要执行操作"});

  jquery iframe页面加载完毕 $('#iframe').load(function(){"要执行操作"});

  jquery ajax调用,绑定事件,setTimeout(),setInterval()。。。

3.回调函数不带参数调用

  回调函数为普通函数

  方式一:推荐使用

function parentFun (callback) {
callback();
} function childFun () {
alert("回调函数");
}
// 调用
parentFun(childFun);

  方式二

function parentFun (callback) {
eval(callback);
} function childFun () {
alert("回调函数");
}
// 调用
parentFun("childFun()");  

  回调函数为匿名函数

function parentFun (callback) {
callback();
}
// 调用
parentFun(function(){
alert("匿名函数作为回调函数");
});

4.回调函数带参调用

  回调函数为普通函数

  方式一(推荐使用)

function parentFun (callback) {
eval(callback);
} function childFun (param) {
alert(param);
}
// 调用
parentFun('childFun("回调函数")');

  方式二

function parentFun (callback,param) {
callback(param);
} function childFun (param) {
alert(param);
}
// 调用
parentFun(childFun,"回调函数");

  方式三:推荐使用

function parentFun (callback) {
callback();
} function childFun (param) {
alert(param);
}
// 调用
parentFun(function(){
childFun("回调函数");
});  

  方式四

function parentFun (callback,param) {
callback(param);
} function childFun (param) {
alert(param);
}
// 调用
parentFun(function(param){
childFun(param);
},"回调函数");

  方式五:不推荐使用

function parentFun (callback) {
callback("回调函数");
} function childFun (param) {
alert(param);
}
// 调用
parentFun(childFun);

  小结:

  方式一和方式五虽然可以实现,但是不支持使用,因为jquery插件一般都不支持这种调用方式,通常支持的是方式三;

  方式三和方式四本质上还是通过匿名函数实现的;

  方式二和方式四都是将回调函数所需的入参作为主函数的一个参数来实现的。

  回调函数为匿名函数

function parentFun (callback,param) {
callback(param);
}
// 调用
parentFun(function(param){
alert(param);
},"回调函数");

5.回调函数执行时机

  同步执行的情况,回调函数一般是最后执行;

  异步执行的情况(ajax),回调函数不一定会执行。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

相关推荐:

 

js 回调函数 精析的更多相关文章

  1. vue.js源码精析

    MVVM大比拼之vue.js源码精析 VUE 源码分析 简介 Vue 是 MVVM 框架中的新贵,如果我没记错的话作者应该毕业不久,现在在google.vue 如作者自己所说,在api设计上受到了很多 ...

  2. JS回调函数全解析教程

    转自:http://blog.csdn.net/lulei9876/article/details/8494337 自学jQuery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速g ...

  3. 学习js回调函数

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

  4. 如何理解JS回调函数

    1.回调函数英文解释: A callback is a function that is passed as an argument to another function and is execut ...

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

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

  6. JS回调函数(callback)

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

  7. js回调函数

    自学jQuery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函数了.不懂啊,于是在google回调函数,发现网上的中文解释实在是 ...

  8. JS回调函数的使用和作用

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

  9. C# dll 事件执行 js 回调函数

      C# dll 事件执行 js 回调函数   前言: 由于js 远程请求  XMLHttpRequest() 不支持多线程,所以用C# 写了个dll 多线程远程抓住供js调用. 最初代码为: C#代 ...

随机推荐

  1. 解决Android-studio假死机建议

    背景 终于第一个ios app发布应用商店送审了,这下也有时间把以前写的android更新一版,但是很久没遇到的as假死机问题又各种折腾了一天..最终解决的方法实在是让人忍无可忍,实在是想写下来给那些 ...

  2. 中国剩余定理 hdu 3579

    HDU 3579 Hello Kiki Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  3. 洛谷P1462 通往奥格瑞玛的道路

    题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...

  4. 权限验证AuthorizeAttribute

    /// <summary> /// 权限验证属性. /// </summary> public class AuthorizeExAttribute : AuthorizeAt ...

  5. Windows7 无法访问共享文件,域访问解决方法。

    1.开始——>运行——>gpedit.msc 打开[本地组策略编辑器] 2.计算机配置——>Windows设置——>安全设置——>本地策略——>安全选项——> ...

  6. linkhashmap实现原理

    HashMap和双向链表合二为一即是LinkedHashMap.所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap. ...

  7. bionase

    BIONASE BIONASE是一个革命性的新设备,针对过敏性鼻炎(花粉病或枯草热)以及大多其他类型的鼻炎.BIONASE能够缓解以及有效阻止与过敏性鼻炎相关的临床症状,例如:鼻塞,打喷嚏,头疼以及流 ...

  8. UML建模工具Visio 、Rational Rose、PowerDesign的比较

    UML建模工具Visio .Rational Rose.PowerDesign的比较   ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建 ...

  9. whois协议

    1.原理非常简单,域名的查询主要是基于RFC 954提供的WHOIS协议.在上述过程中,我们实际上是访问了InterNIC站点的WHOIS服务器,该服务器从WHOIS数据库中查询我们所需要的内容.WH ...

  10. CentOS6.5配置网络

    [ CleverCode发表在csdn博客中的原创作品,请勿转载.原创地址:http://blog.csdn.net/clevercode/article/details/46376985] 1 网卡 ...