什么是回调函数?
当前回答
回调是将一个函数作为参数传递给另一个函数,并在流程完成后调用此函数的想法。
如果你通过上面精彩的答案得到回调的概念,我建议你应该了解它的背景。
“是什么让他们(计算机科学家)开发回调?”你可能会学到一个问题,那就是阻塞。(尤其是阻止UI)回调并不是唯一的解决方案。还有很多其他解决方案(例如:线程、期货、承诺…)。
其他回答
CallAfter将是一个比callback这个愚蠢的名字更好的名字。当或如果某个函数满足条件,则调用另一个函数,即CallAfter函数,即作为参数接收的函数。
与其在函数中硬编码内部函数,不如编写一个函数来接受已经编写的CallAfter函数作为参数。可能会根据接收参数的函数中的代码检测到的状态更改来调用CallAfter。
维基百科上的回调页面很好地解释了这一点:
在计算机编程中,回调是对可执行代码或一段可执行代码的引用,作为参数传递给其他代码。这允许较低级别的软件层调用在较高级别的层中定义的子程序(或函数)。
回调与回调函数
回调是在另一个函数完成执行后执行的函数 — 因此得名“回电”。
什么是回调函数?
将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中,回调允许插件模块从容器/环境访问服务。
来源
回调函数作为参数传递给另一个函数的函数。
function test_function(){
alert("Hello world");
}
setTimeout(test_function, 2000);
注意:在上面的示例中,test_function用作setTimeout函数的参数。
回调函数是您指定给现有函数/方法的函数,在操作完成时调用,需要额外处理等。
例如,在Javascript中,或者更具体地说,在jQuery中,可以指定在动画完成时调用的回调参数。
在PHP中,preg_replace_callback()函数允许您提供一个在正则表达式匹配时调用的函数,将匹配的字符串作为参数传递。