javascript中回调函数的问题

时间:2010-10-06 06:01:13

标签: html callback javascript

我试图在javascript中理解回调函数。

有一个像

这样的功能
function load() {

 var func = function(data){
  ///

 };
}

任何人都可以向我解释参数“data”的返回位置,因为我没有看到文件中声明的任何变量。

1 个答案:

答案 0 :(得分:3)

在JavaScript中,函数为first class objects。您可以将它们存储在对象(变量)中,并将它们作为参数传递给函数。每个函数实际上都是Function对象。

在该示例中,您没有回调函数。将函数作为参数传递给另一个函数时,你就有了一个。

这是一个在准备就绪时调用回调函数的函数:

function load (ready_callback) {
   // do some stuff

   ready_callback();
}

可以按如下方式调用:

function callback () {
   alert('Ready');
}

load(callback);

或者:

var callback = function () {
   alert('Ready');
}

load(callback);

或者:

load(function () {
   alert('Ready');
});

以上三个例子非常相同。

回调函数通常用于事件处理和异步方法。一个例子是setTimeout()方法,它在超时到期时调用回调函数:

var timerCallback = function () {
   alert('Timeout Expired!');
}

setTimeout(timerCallback, 5000);  // Set the timeout to 5 seconds