定义
关于回调函数的定义,网上有很多的说法,大多都是通过实际的生活场景来类比,可是感觉描述的很像异步操作。
其实简单来说,假设有A、B、C三个函数。函数A调用函数B的时候,函数A通过参数给函数B传递了函数C的指针,在函数B执行的过程中,函数B调用了函数C,这个动作就叫做回调(Callback),而先被当做指针传入、后面又被回调的函数 C 就是回调函数.
使用
回调函数相比与普通的函数调用的区别在哪里?在回调中,主程序把回调函数像参数一样传入库函数。这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,这样有没有觉得很灵活?并且丝毫不需要修改库函数的实现,这就是解耦。再仔细看看,主函数和回调函数是在同一层的,而库函数在另外一层,想一想,如果库函数对我们不可见,我们修改不了库函数的实现,也就是说不能通过修改库函数让库函数调用普通函数那样实现,那我们就只能通过传入不同的回调函数了。