被作为实参传入另一函数,并在该外部函数内被调用,用以来完成某些任务的函数,称为回调函数。
例如:
function greeting(name) {
alert(‘Hello ‘ + name);
}
function processUserInput(callback) {
var name = prompt(‘请输入你的名字。‘);
callback(name);
}
processUserInput(greeting);
以上范例为 同步 回调,它是立即执行的。
然而需要注意的是,回调函数经常被用于继续执行一个异步 完成后的操作,它们被称为异步回调。例如,这个简单 的 maps-example.html 例子(live 链接点此)使用了 Google Maps 以及 Geolocation 的 API 来展示您设备的当前位置。
由于从 GPS 得到设备坐标信息的操作为异步的(我们不知道何时数据会被返回),所以 Geolocation.getCurrentPosition()
方法接收一个匿名回调函数作为形参,而该回调函数则接收传回的坐标数据作为形参。该函数只在坐标数据返回后才执行。