复习一知识点:回调函数callback
比如我们常用的异步请求:
$.ajax({
url:"test.json",
type: "GET",
data: {username:$("#username").val()},
dataType: "json",
beforSend:function(){
// 禁用按钮防止重复提交
$("#submit").attr({ disabled: "disabled" });
},
complete:function(msg){
//请求完成后调用的回调函数(请求成功或失败时均调用)
} ,
error:function(msg){
//请求失败时被调用的函数
} ,
Sucess:function(msg){
//请求成功后调用的回调函数
}
});
初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数。
我们先来看看回调的英文定义:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed。
字面上的理解,回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。
其实也很好理解对吧,回调,回调,就是回头调用的意思。主函数的事先干完,回头再调用传进来的那个函数。但是以前看过很多博客,他们总是将回调函数解释的云里雾里,很高深的样子。
举一个别人举过的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你。” 对不,然后你女朋友回家以后还真给你发了条信息。小伙子,你有戏了。其实这就是一个回调的过程。你留了个参数函数(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是主函数。她必须先回到家以后,主函数执行完了,再执行传进去的函数,然后你就收到一条信息了。
现在基本理解回调函数的意思了吧。不理解的话没关系,我们用代码说话。
//定义主函数,回调函数作为参数
function A(callback) {
callback();
console.log('我是主函数');
} //定义回调函数
function B(){
setTimeout("console.log('我是回调函数')", );//模仿耗时操作
} //调用主函数,将函数B传进去
A(B); //输出结果
我是主函数
我是回调函数
上面的代码中,我们先定义了主函数和回调函数,然后再去调用主函数,将回调函数传进去。
定义主函数的时候,我们让代码先去执行callback()回调函数,但输出结果却是后输出回调函数的内容。这就说明了主函数不用等待回调函数执行完,可以接着执行自己的代码。所以一般回调函数都用在耗时操作上面。比如ajax请求,比如处理文件等。
转载自:https://blog.csdn.net/u010261944/article/details/78927193
最新文章
- flush vs ob_flush
- angularJS——自定义指令
- 使用 CSS 媒体查询创建响应式网站
- OC—设计模式-通知的使用
- 分布式之高性能IO组件
- 剑指OFFER之数组中出现次数超过一半的数字(九度OJ1370)
- Zend Studio 或者Eclipse下安装插件Spket(以Zend为例)
- 9.14noip模拟试题
- android 点击下弹动画实现
- bios中断向量表
- linux上快速搭建宝塔面板来操作便捷功能
- dataTables 插件学习整理
- 移动端无限滚动 TScroll.vue组件
- Fetch使用
- 谈谈==和equals
- [osg]osg绘制动态改变顶点的几何体
- asp.net Log4Net错误日志个人总结
- Java 理论与实践: 用弱引用堵住内存泄漏
- 如何查看Drupal网站使用的模块
- matlab之simulink仿真入门