维基百科的解释是:
回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。在js中允许简单的将函数名作为参数传递。
知乎上最高票的回答是用了一个比喻:
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。
https://www.zhihu.com/question/19801131/answer/13005983
所以传给对方一个函数,当对方在合适的时机调用这个函数,这个函数就是回调函数.例如:
function f1(callback) {
console.log(1)
callback();
}
function f2() {
console.log(2)
}
f1(f2);
回调函数的优点是便于理解,缺点是代码间耦合程度高且程序流程不明晰,不方便理解维护.