2014-01-25 30 views
0

我最近开始学习JavaScript,并且看到了很多回调函数。 这些功能是什么,它们为什么使用以及用于什么? 我很乐意得到真正的基本定义,因为我想明白它,因为我意识到它在js中非常重要。有人可以解释我的回调函数吗?

谢谢:)

回答

0

正如其名称所暗示的,回调函数是作为参数传递给另一个函数匿名或命名功能,或AJAX调用等,并将在JavaScript引擎完成某个动作后执行。

例如,一旦AJAX调用返回数据,就可以传递一个回调函数。为了简单起见,我使用jQuery:

$.ajax({ 
    url: "/my-api-path/", 
    data: myParams 
}).done(myCallback); 

这里,myCallback是一个函数,一旦AJAX调用完成,它就会被执行。这种情况下的回调函数将被AJAX调用返回的响应对象调用。注意这个回调函数是如何作为jQuery的AJAX API提供的.done方法的参数传递的。

在另一实例中,

setTimeout( 
function() { 
alert("Im inside a callback function!"); 
}, 2000); 

这里包含警报的功能是第一两个参数传递给在JavaScript中的setTimeout方法。第二个是应该执行该函数之后的毫秒数。由于此功能没有名称,因此称为匿名功能。

相同的代码可以重新写为:

var myCallback = function(){ 
    alert("Im inside a callback"); 
}; 
setTimeout(myCallback, 2000); 

动作完成时回调将立即执行。因此,在引擎遇到setTimeout语句之后,它会将myCallback函数存储在引用中,然后在setTimeout语句之后继续执行。一旦经过2秒,它就会意识到执行回调的时间,因此执行将跳转到回调。然后警报将执行,回调函数将终止并且执行将从2秒钟过去并且引擎跳转到回调的地方继续。

希望这解释了回调是如何工作的。

0

因为我们知道我们可以通过不同类型的变量,对象作为函数的参数。在JavaScript中,如果函数作为参数传递,那么它被称为回调函数。

在某些事件/条件上调用回调函数,直到程序可以执行其他代码。回调函数只有在特定事件发生或特定条件满足时才会执行。

+0

你是什么意思的事件? – PeeHaa

+0

事件意味着一些条件。 –

2

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

回调函数将被您传递给它的函数调用(或者链中的另一个函数)。

这通常是在函数执行异步操作时完成的,因此您不能使用返回值。

主要的例子是事件:

// call someFunction when the document is loaded 
addEventListener('load', someFunction); 

或时间相关的呼叫:

// call someFunction after 30 seconds have elapsed 
setTimeout(someFunction, 30000); 
相关问题