27.回调函数实现的原理是什么?

    首先让我们来看看普通的函数调用,假设我们在A函数中调用函数func:

    想一想,你怎么知道可以调用func呢?哦,原来func是你自己定义的:

    这很简单吧,现在假设你编写的这段代码无比之牛逼,全世界的程序员都无比疯狂的想引入到自己的项目中,这时你会把A函数编写成一个库供全世界的码农使用。

    假设全世界有一千万码农,那你是不是要有一千万个if else。。。想想这样的代码就很刺激有没有!更好的办法是什么呢?把函数也当做变量!你可以这样定义A函数:

    任何一个码农在调用你的A函数时传入一个函数变量,A函数在合适的时机调用你传入的函数变量,从而节省了一千万行代码

    为了让这个过程更加难懂一些,这个函数变量起了一个无比难懂的称呼:回调函数

    以上就是回调函数的基本原理,有想看更详细版本的请参考这里。

    以上仅仅是回调函数的一种用途,回调函数在基于事件驱动编程以及异步编程时更是必备的,关于事件驱动编程你可以参考这里,GUI编程的同学对此肯定很熟悉。

    希望这里的讲解对大家理解回调函数有所帮助。