什么是回调函数?


当前回答

回调函数也称为高阶函数,是作为参数传递给另一个函数的函数,回调函数在父函数内调用(或执行)。

$("#button_1").click(function() {
  alert("button 1 Clicked");
});

这里我们将一个函数作为参数传递给click方法。click方法将调用(或执行)我们传递给它的回调函数。

其他回答

看看图片:)

主程序使用回调函数名调用库函数(也可能是系统级函数)。此回调函数可以以多种方式实现。主程序根据需要选择一个回调。

最后,库函数在执行期间调用回调函数。

让我们保持简单。什么是回调函数?

抛物线和类比示例

我有一个秘书。每天我都会让她:(I)把公司的邮件寄到邮局,等她寄完之后,再做:(ii)我在那些便笺上为她写的任何任务。

现在,便笺上的任务是什么?任务每天都不同。

假设在这一天,我要求她打印一些文件。所以我把它写在便笺上,然后把它和她需要寄的邮件一起钉在她的桌子上。

总而言之:

首先,她需要放下邮件完成后,她需要立即打印一些文件。

回调函数是第二项任务:打印这些文档。因为这是在邮件投递后完成的,同时也是因为通知她打印文档的便笺和她需要邮寄的邮件一起给了她。

现在让我们将其与编程词汇联系起来

本例中的方法名为:DropOffMail。回调函数是:PrintOffDocuments。PrintOffDocuments是回调函数,因为我们希望秘书只有在DropOffMail运行后才能这样做。因此,我会将PrintOffDocuments作为“参数”传递给DropOffMail方法。这是一个重要的点。

仅此而已,没什么了。我希望这能为你澄清——如果没有,请发表评论,我会尽力澄清。

回调函数作为参数传递给另一个函数的函数。

function test_function(){       
 alert("Hello world");  
} 

setTimeout(test_function, 2000);

注意:在上面的示例中,test_function用作setTimeout函数的参数。

CallAfter将是一个比callback这个愚蠢的名字更好的名字。当或如果某个函数满足条件,则调用另一个函数,即CallAfter函数,即作为参数接收的函数。

与其在函数中硬编码内部函数,不如编写一个函数来接受已经编写的CallAfter函数作为参数。可能会根据接收参数的函数中的代码检测到的状态更改来调用CallAfter。

维基百科上的回调页面很好地解释了这一点:

在计算机编程中,回调是对可执行代码或一段可执行代码的引用,作为参数传递给其他代码。这允许较低级别的软件层调用在较高级别的层中定义的子程序(或函数)。