回调函数call back最通俗易懂的解释(适合初学者)

来源:互联网 发布:华为liteos 源码下载 编辑:程序博客网 时间:2024/06/14 12:37

一个函数a想要调用另一个函数,但是这个被调用的函数还没有写出来,也不知道会是谁写,写成什么样,应该怎么办?

1、我们首先想到的肯定是把想要调用的函数作为参数传进来。是的,JavaScript这门语言允许把函数作为参数。我们可以这样写。

function a(b){  //这里传入的参数b是一个函数

............

b();

............

}

2、那对于Java这种不能把函数作为参数的语言来说,应该怎么办呢?我们想到把类传进来,用类来调用函数。

public void a(B b){

............

b.b();

............

}

这样是可以的,但是如果把类B换成接口就更加灵活了。


好了,说了这么多,那么回调函数到底是什么呢?

回调函数就是我们上面例子中的b函数。

 

为什么称为回调函数?“回调”这个词到底有什么意义?

我们想象一下,如果a函数是开发底层的程序员写出来的。程序员b在后续开发时需要用到这个底层的a函数,那他应该执行什么步骤呢?他需要写出一个函数b,把这个b传递到函数a中去,然后调用函数a。也就是说程序员b本来是想调用底层的函数,结果又间接调用了他自己写的函数。这就是“回调”的意义。


回调函数有什么作用?

先假设有这样一种情况,我们要编写一个库,它提供了某些排序算法的实现,如冒泡排序、快速排序、shell排序、shake排序等等,但为了使库更加通用,不想在函数中嵌入排序逻辑,而让使用者来实现相应的逻辑;或者,想让库可用于多种数据类型(int、float、string),此时,该怎么办呢?可以使用回调。


我现在刚开始学习JavaScript,在书中看到回调函数,翻阅了一些资料,初步理解了其含义。

在这里表述出来,希望对大家理解回调函数有所帮助。

0 0
原创粉丝点击