什么叫CallBack函数,怎么用回调函数?

JQuery众多常用方法中很经常会用到回调函数, 理解好js callback函数定义及用法,我们就可以利用callback函数帮我们做很多事情啦!

A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

这是js对callback函数的解析,意思是:callback函数是一个以参数形式传递给另一个函数的函数,并且该函数(指callback函数)必须等另一个函数执行完才会被调用!(当被调用时,另一个函数就是callback函数的父函数)。

理解起来可能有点绕,通俗点的例子:

函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫回调。

这里必须强调的一点:函数b是你以参数形式传给函数a的,那么函数b被调用时就叫回调函数。

疑问:

函数一定要以参数形式传过去吗,直接在函数a里面调用函数b不也可以实现callback函数的功能吗?

解答:

使用函数做参数就有下面的好处:当你a(b)的时候函数b就成了回调函数,而你还可以a(c)这个时候,函数c就成了回调函数。如果你直接在函数a里调用的话,这个回调函数就被限制死了。如果你写成了function a(){...;b();}就失去了变量的灵活性。

来个最简单的示例:

<script>
        function a(callback){
            alert("主函数执行完了!");
            callback();
        }
        function b(){
            alert("回调函数b!");
        }
        function c(){
            alert("回调函数c!");
        }
        // callback函数以参数形式传递,保证变量的灵活性
        a(b);
        a(c);
</script>
                        

什么叫CallBack函数,怎么用回调函数?

时间: 2024-09-27 03:48:48

什么叫CallBack函数,怎么用回调函数?的相关文章

函数指针和回调函数

函数指针 函数指针是指向函数调用地址的指针.它和函数名究竟有什么关系呢?且看下文. 且看一小程序 首先,先请看下边程序: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 void func(string s) 6 { 7 cout << s << endl; 8 } 9 10 void (*pFunc)(string s); // 不能够写成 void *pFunc(s

类成员函数可以为回调函数吗

关于类成员函数是否可以成为回调函数,我们首先需要明确几个定义,1. 什么是回调函数 2. 为什么要使用回调函数 3. 调用普通类成员函数和调用回调函数有什么区别 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数 为什么要使用回调函数? 因为可以把调用者与被调用者分开.调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型.某些限制条件(如返回值为int

【C语言】函数指针与回调函数

在C语言中:指针是C语言的特色,有着各种各样的指针,普通的变量指针,常量指针,数组指针,指针数组,函数指针,指针函数.我们就讲一下函数指针与回调函数吧 首先关于函数指针,其实很简单. 对于一个函数指针来说,顾名思义,就是一个指向函数的指针,需要知道的是,对于指针而言,他总是存储一块地址,地址里面有着一个,一组,或者一块数据,在函数中,函数的存储是放在代码段的,每个函数都有着一个函数首地址,调用了这个地址相当于调用的这个函数. 具体的可以观看我的这篇博客,其中就通过在内存阶段改变栈帧返回值,成功的

函数指针和回调函数的事

一. 函数指针 关于函数指针的概念,可以想到一个整型指针指向的是一个整型,它的值是所指向对象的地址:一个字符串指针指向的是一个字符串,它的值是所指向字符串的首地址:因此,一个函数指针当然是一个指针变量了,它所指向的是一个函数,它的值就是所指向函数的入口地址. 函数指针的定义如下: typedef int data_type; data_type (*pfun)(data_type, data_type); 上面的语句中定义了一个函数指针pfun,它表示指向一个返回值为data_type,参数为两

C函数指针与回调函数

一.函数指针 简单声明一个函数指针并不意味着它马上就可以使用,和其它指针一样,对函数指针执行简接访问之前必须把它初始化为指向某一个函数. int f(int); int (*pf)(int)=&f; 第二个声明创建了函数指针pf,并把它初始化为指向函数f.函数指针的初始化也可以通过一条赋值语句完成.在函数指针的初始化之前具有f的原型是很重要的,否则编译器就无法检查f的类型是否与pf所指向的类型一致. 初始化表达式中的&操作符是可选的,因为函数名被使用时总是由编译器把它转换为函数指针.&am

深入浅出剖析C语言函数指针与回调函数(二)

上一篇博文的地址: http://blog.csdn.net/morixinguan/article/details/65494239 这节,我们来看看函数指针与回调函数在Linux内核中的应用. 从上节我们了解到,函数指针和回调函数在开发者和用户之间的一个例子,那么这节,我将引用Linux内核中文件操作结构体来详细的说明. 我们首先来看到这个结构体,这段代码位于linux内核的include/linux/fs.h中,由于代码众多,我只截取几个最基本的例子: File_operations文件操

函数指针与回调函数

一.函数指针 1.  函数指针就是一个指针变量,用来指向函数地址.正在运行的程序(进程)在内存中占据一定的空间.进程包括编译好的程序代码和需要使用的变量.因此,程序代码中的函数就是一些字符域,要得到一个函数地址,也就是得到这些字符域的起始地址. 2. 函数指针的三种形式:    指向普通C函数的函数指针 --- C语言中的函数指针    指向C++类静态成员函数的函数指针 --- C++    指向C++类非静态成员函数的函数指针 --- C++ 函数指针的本质自然也就是函数地址.  类成员函数

函数指针,回调函数

函数指针的定义:返回值类型 ( * 指针变量名) (形参列表); 1:"返回值类型"说明函数的返回类型,"(指针变量名 )"中的括号不能省,括号改变了运算符的优先级.若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的"形参列表"表示指针变量指向的函数所带的参数列表. int func(int x); /* 声明一个函数 */ int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func

回调函数教程(一):回调函数定义及用接口实现的实例

回调函数定义: 传递一个函数A到另一个函数B中,并且这个函数B执行函数A.我们就说函数A叫做回调函数.如果没有名称,就叫做匿名回调函数.或者将一个方法对象A 传递给另一个方法对象 B,让后者在适当的时候执行A,那么A就叫做回调函数. 回调函数实例理解: 消防员给出一个电话号码119(这是每个人都知道的,119就相当于Java中的一个接口),并且在每一个地方都设置一个发生火灾时的检测装置,如果危急到人们的人生安全时,那么市民就可以通过119给消防员打电话,然后叫消防员来处理.回调的意思就是说,消防

函数指针、回调函数、系统调用区别

函数指针.回调函数.系统调用区别1.函数指针 1 int add(int a, int b) 2 { 3 return a+b; 4 } 5 6 int (*fp)(int,int); 7 8 int main() 9 { 10 int c; 11 fp = add; //有指针赋值操作,静态绑定 12 c = fp(2,4); 13 printf("c = %d\n",c); 14 return 0; 15 } 2.回调函数 1 int add(int a, int b) //回调函