与标准函数相比,什么是回调函数

时间:2014-07-31 03:16:44

标签: javascript callback

什么是回调函数?我们何时使用一个而不是标准的无参数化函数?

6 个答案:

答案 0 :(得分:0)

来自维基百科:

  

回调是一段作为参数传递的可执行代码   到其他代码,期望回调(执行)参数   在方便的时候。调用可以是立即调用,如a   synAhronous回调或它可能在以后发生,如在   异步回调。在所有情况下,目的是指定一个   函数或子程序作为一个实体,取决于   语言,或多或少类似于变量。

回调函数基本上是一个函数,可以作为参数传递给其他事件或函数。它允许代码在选择时使用其选择的参数执行回调函数。

例如:

function my_callback(evt){alert("Button clicked!");}

$('#button').click(my_callback)

我们将函数my_callback传递给事件代码,然后当jQuery确定它是合适的时,它可以将自己的事件对象传递给函数

答案 1 :(得分:0)

当需要稍后执行一段代码时,使用

回调函数。当您绑定事件处理程序或从ajax帖子返回时,您将在javascript中最常见到这一点。基本上你将函数作为参数传递。当您的事件触发时,该功能将被执行。您可以在下面的页面上看到此示例

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener

function modifyText() {
   var t2 = document.getElementById("t2");
   if (t2.firstChild.nodeValue == "three") {
     t2.firstChild.nodeValue = "two";
   } else {
     t2.firstChild.nodeValue = "three";
   }
}

var el = document.getElementById("outside");
el.addEventListener("click", modifyText, false);

在此示例中,modifyText是一个正在传递给addEventListener函数的函数。单击outside按钮后,modifyText内的代码将执行

答案 2 :(得分:0)

callback就像是在告诉某人Call me back when you finish your job!。这意味着你不想在那里等待,但是当你的朋友(也许是数据库访问功能)完成他们的工作时,仍然需要做一些事情。

答案 3 :(得分:0)

JavaScript statements are executed line by line. However, with effects, the next line of code can be run even though the effect is not finished. This can create errors.

为了消除这些错误,我们使用回调函数

回调函数是当事件激活时将执行的函数。这在许多javascript函数中使用,如addEventListener()等。它也称为回调模式。

检查this链接以了解并了解它

答案 4 :(得分:0)

像这样的代码

var result = db.query('select  * from T'); //use result - Standard function

您的软件什么都不做,您只是在等待数据库响应。 this somehow either blocks the entire process or implies multiple execution stacks. 但是像这样的一行代码

db.query('select * from T',function(result){
    //use result - Callback function
});

允许程序立即返回事件循环。

在此执行中,服务器发出该请求并继续执行其他操作when the request comes back(after millions of clock cycles), you can execute the callback, all you need is the pointer to the callback.

答案 5 :(得分:0)

语言水平没有区别"在functioncallback之间。对于Javascript而言,它们是相同的,它们都是function

功能的使用有所不同。如果你在代码中调用它,它被认为是function,如果它作为参数传递给另一个将在以后使用它的函数被认为是{{1} }。