什么是回调函数?
当前回答
回调函数是您指定给现有函数/方法的函数,在操作完成时调用,需要额外处理等。
例如,在Javascript中,或者更具体地说,在jQuery中,可以指定在动画完成时调用的回调参数。
在PHP中,preg_replace_callback()函数允许您提供一个在正则表达式匹配时调用的函数,将匹配的字符串作为参数传递。
其他回答
回调函数也称为高阶函数,是作为参数传递给另一个函数的函数,回调函数在父函数内调用(或执行)。
$("#button_1").click(function() {
alert("button 1 Clicked");
});
这里我们将一个函数作为参数传递给click方法。click方法将调用(或执行)我们传递给它的回调函数。
回调与回调函数
回调是在另一个函数完成执行后执行的函数 — 因此得名“回电”。
什么是回调函数?
将Funs(即函数对象)作为参数或返回Funs的函数称为高阶函数。任何作为参数传递的函数都称为回调函数。回调函数是作为参数传递给另一个函数(让我们调用这个其他函数otherFunction)的函数,回调函数在otherFunction内部调用(或执行)。
function action(x, y, callback) {
return callback(x, y);
}
function multiplication(x, y) {
return x * y;
}
function addition(x, y) {
return x + y;
}
alert(action(10, 10, multiplication)); // output: 100
alert(action(10, 10, addition)); // output: 20
在SOA中,回调允许插件模块从容器/环境访问服务。
来源
外行的回答是,它不是由您调用的函数,而是由用户或浏览器在某个事件发生或某些代码处理后调用的函数。
回调函数是您传递(作为引用或指针)到某个函数或对象的函数。此函数或对象将在以后的任何时候(可能多次)出于任何目的调用此函数:
通知任务结束请求两个项目之间的比较(如在c qsort()中)报告流程的进度通知事件委托对象的初始化授权绘制区域
...
因此,将回调描述为在另一个函数或任务结束时调用的函数过于简单(即使这是一个常见的用例)。
让我们保持简单。什么是回调函数?
抛物线和类比示例
我有一个秘书。每天我都会让她:(I)把公司的邮件寄到邮局,等她寄完之后,再做:(ii)我在那些便笺上为她写的任何任务。
现在,便笺上的任务是什么?任务每天都不同。
假设在这一天,我要求她打印一些文件。所以我把它写在便笺上,然后把它和她需要寄的邮件一起钉在她的桌子上。
总而言之:
首先,她需要放下邮件完成后,她需要立即打印一些文件。
回调函数是第二项任务:打印这些文档。因为这是在邮件投递后完成的,同时也是因为通知她打印文档的便笺和她需要邮寄的邮件一起给了她。
现在让我们将其与编程词汇联系起来
本例中的方法名为:DropOffMail。回调函数是:PrintOffDocuments。PrintOffDocuments是回调函数,因为我们希望秘书只有在DropOffMail运行后才能这样做。因此,我会将PrintOffDocuments作为“参数”传递给DropOffMail方法。这是一个重要的点。
仅此而已,没什么了。我希望这能为你澄清——如果没有,请发表评论,我会尽力澄清。