什么是回调函数?
当前回答
这使得回调听起来像方法末尾的返回语句。
我不确定这是什么。
我认为回调实际上是对一个函数的调用,是另一个函数被调用和完成的结果。
我还认为回调是为了处理原始调用,以一种“嘿!你要的东西?我已经做了-我想我会让你知道-还给你”的方式。
其他回答
外行的回答是,它不是由您调用的函数,而是由用户或浏览器在某个事件发生或某些代码处理后调用的函数。
回叫最容易用电话系统来描述。功能调用类似于打电话给某人,问她问题,得到答案,然后挂断电话;添加回拨会改变类比,这样在问她一个问题后,你也可以给她你的名字和电话号码,这样她就可以给你回拨答案。
--Paul Jakubik,“C++中的回调实现”
回调函数是您传递(作为引用或指针)到某个函数或对象的函数。此函数或对象将在以后的任何时候(可能多次)出于任何目的调用此函数:
通知任务结束请求两个项目之间的比较(如在c qsort()中)报告流程的进度通知事件委托对象的初始化授权绘制区域
...
因此,将回调描述为在另一个函数或任务结束时调用的函数过于简单(即使这是一个常见的用例)。
CallAfter将是一个比callback这个愚蠢的名字更好的名字。当或如果某个函数满足条件,则调用另一个函数,即CallAfter函数,即作为参数接收的函数。
与其在函数中硬编码内部函数,不如编写一个函数来接受已经编写的CallAfter函数作为参数。可能会根据接收参数的函数中的代码检测到的状态更改来调用CallAfter。
回调函数是您指定给现有函数/方法的函数,在操作完成时调用,需要额外处理等。
例如,在Javascript中,或者更具体地说,在jQuery中,可以指定在动画完成时调用的回调参数。
在PHP中,preg_replace_callback()函数允许您提供一个在正则表达式匹配时调用的函数,将匹配的字符串作为参数传递。