回调函数的含义

时间:2010-09-01 08:20:15

标签: javascript

javascript中回调函数的含义是什么。

4 个答案:

答案 0 :(得分:13)

JavaScript的“回调”是可以传递给其他函数(如函数指针或委托函数)的函数对象,然后在函数完成时或需要时调用。例如,您可以使用一个主函数来传递它将调用的函数...

主要功能如下:

function mainFunc(callBack)
{
    alert("After you click ok, I'll call your callBack");

    //Now lets call the CallBack function
    callBack();
}

你会这样称呼:

mainFunc(function(){alert("LALALALALALA ITS CALLBACK!");}

或者:

function thisIsCallback()
{
    alert("LALALALALALA ITS CALLBACK!");
}

mainFunc(thisIsCallback);

这在javascript库中广泛使用。例如,jQuery的animation()函数可以传递这样的函数,以便在动画结束时调用。

将回调函数传递给其他函数并不能保证它会被调用。执行回调调用(calBack())完全取决于该函数的实现。

即使是“回叫”这个名字也是不言自明的...... =)

答案 1 :(得分:6)

它只是一个函数的名称,应该在某些东西之后回调。

它经常与XMLHttpRequest一起使用:

var x = new XMLHttpRequest();
x.onreadystatechange = function(){
    if(x.readyState == 4){
        callbackfunction(x.responseText);
    }
}
x.open('get', 'http://example.com/', true);
x.send(null);

callbackfunction只是一个简单的函数,在这种情况下:

function callbackfunction(text){
    alert("I received: " + text);
}

答案 2 :(得分:3)

除了作为函数之外,回调函数还是异步应用程序设计的推动者。

在您等待时,可能会在调用函数的异步模式下锁定线程或单线程系统上的整个PC或UI,而不是调用函数并等待返回值,它会在完成之前返回,然后你可以退出代码(返回调用操作系统,空闲状态,运行循环,等等......)。然后,OS或异步函数会调用您的代码。您希望它回调的代码通常封装在称为“回调函数”的内容中。还有其他用途,但这是OOP UI框架中的常见用法。

使用最新的iOS 4.x,您还可以使用无名“块”进行回调。但是没有块的语言(或其他名称下的匿名闭包)使用函数进行函数回调。

答案 3 :(得分:-2)

您只需使用以下语句onClick后退按钮事件:

OnClick="javascript:history.go(-1)"

它会将您带回到您最近访问过的上一页。