setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
常规用法:
setTimeout(function(){ alert("Hello"); }, 3000);
加强版用法:
如下面完整代码中的setTimeout(alertFunc, 2000, "Runoob", "Google")
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p>点击按钮 2 秒后输出 "Hello"。</p>
<p>实例中,我们也会输出传递给 alertFunc() 函数的参数 ( IE9 及更早版本不支持 )。</p>
<button onclick="myStartFunction()">开始</button>
<p id="demo"></p>
<p id="demo2" style="color:red;"></p>
<script>
var myVar;
function myStartFunction() {
myVar = setTimeout(alertFunc, 2000, "Runoob", "Google");
}
function alertFunc(param1, param2) {
document.getElementById("demo").innerHTML += "Hello ";
document.getElementById("demo2").innerHTML = "传递给 alertFunc() 的参数: <br>"
+ param1 + "<br>" + param2 + "<br>";
}
</script>
</body>
</html>
此时的setTimeout(alertFunc, 2000, "Runoob", "Google")一共传递了4个参数,咋一看有点蒙,查了下资料发现后边两个参数实际上是传递给定时执行函数alertFunc的参数,其界面运行效果如图:
传递参数给 alertFunc 函数 ( IE9 及其更早版本不支持)(如果使用匿名函数,则所有浏览器都支持):
以上已结束,如有错误欢迎指正,嘎嘎!
一下为另一setTimeout多参数传递示例(es6 promise用法代码示例)
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, 'done');
});
}
timeout(100).then((value) => {
console.log(value);
});