手册
目录
上一章中使用的例子做了很大地简化。
其目的是演示回调函数的语法:
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function myCalculator(num1, num2, myCallback) {
let sum = num1 + num2;
myCallback(sum);
}
myCalculator(5, 5, myDisplayer);
运行实例 »点击 "运行实例" 按钮查看在线实例
在上面的例子中,myDisplayer 是函数的名称。
它作为参数传递给 myCalculator()。
在现实世界中,回调最常与异步函数一起使用。
一个典型的例子是 JavaScript setTimeout()。
在使用 JavaScript 函数 setTimeout() 时,可以指定超时时执行的回调函数:
setTimeout(myFunction, 3000);
function myFunction() {
document.getElementById("demo").innerHTML = "I love You !!";
}
运行实例 »点击 "运行实例" 按钮查看在线实例
在上面的示例中,myFunction 被用作回调。
函数(函数名)作为参数传递给 setTimeout()。
3000 是超时前的毫秒数,所以 3 秒后会调用 myFunction()。
当您将函数作为参数传递时,请记住不要使用括号。
正确:setTimeout(myFunction, 3000);
错误:setTimeout(myFunction(), 3000);
若不将函数的名称作为参数传递给另一个函数,您始终可以传递整个函数:
setTimeout(function() { myFunction("I love You !!!"); }, 3000);
function myFunction(value) {
document.getElementById("demo").innerHTML = value;
}
运行实例 »点击 "运行实例" 按钮查看在线实例
在上面的例子中,function(){ myFunction("I love You !!!"); } 用作回调。它是一个完整的函数。完整的函数作为参数被传递给 setTimeout()。
3000 是超时前的毫秒数,所以 3 秒后会调用 myFunction()。
在使用 JavaScript 函数 setInterval() 时,可以指定每个间隔执行的回调函数:
setInterval(myFunction, 1000);
function myFunction() {
let d = new Date();
document.getElementById("demo").innerHTML=
d.getHours() + ":" +
d.getMinutes() + ":" +
d.getSeconds();
}
运行实例 »点击 "运行实例" 按钮查看在线实例
在上面的例子中,myFunction 用作回调。
函数(函数名)作为参数传递给 setInterval()。
1000 是间隔之间的毫秒数,因此 myFunction() 将每秒调用一次。
如果您创建函数来加载外部资源(如脚本或文件),则在内容完全加载之前无法使用这些内容。
这是使用回调的最佳时机。
此例加载一个 HTML 文件 (mycar.html),并在文件完全加载后在网页中显示该 HTML 文件:
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function getFile(myCallback) {
let req = new XMLHttpRequest();
req.open('GET', "mycar.html");
req.onload = function() {
if (req.status == 200) {
myCallback(this.responseText);
} else {
myCallback("Error: " + req.status);
}
}
req.send();
}
getFile(myDisplayer);
运行实例 »点击 "运行实例" 按钮查看在线实例
在上面的示例中,myDisplayer 用作回调。
函数(函数名)作为参数传递给 getFile()。
以下是 mycar.html 的副本:
![]()
A car is a wheeled, self-powered motor vehicle used for transportation. Most definitions of the term specify that cars are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels.
(Wikipedia)
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习