什么是回调函数?
一般情况下我们是直接调用其他类或库的函数,但有时候我们需要先写好一个方法A传到其他类或库的函数B中,以便这个函数A在函数B执行时也进行执行。
这个函数A就是回调函数。
函数B就是中间函数。
函数A传入到函数B,就叫做注册回调函数。
函数B在运行时调用函数A,就叫做调用回调函数。
举例子:
事情:
有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法,不同的旅客有不同的叫醒方法,旅客先提前告诉旅馆的叫醒方法,到一定时间后旅馆在进行叫醒服务时就会采用相应的叫醒方法。
理解:
- 叫醒服务就是中间函数
- 叫醒方法就是回调函数
- 旅客提前告诉旅馆的叫醒方法这个过程就是注册回到函数的过程
- 旅店在执行通过旅客提供的叫醒方法进行叫醒服务时就是进行回调
本质: 动态注册函数
优点: 具有很大的灵活性,作为参数传入的函数可以动态的注册
为什么叫回调呢?
系统编程分为两类,系统层和应用层,一般情况下应用层直接调用系统层的函数,但是有的函数为了提高灵活性,可以供应用层传入一个函数,而这个传入的函数就是回调函数。
也就是说回调这个词的来源并不是中间函数要调用初始函数,也不是调用初始函数所在的类,而是系统层返回去调了应用层的函数
网友评论