你好,你能解释一下 setTimeOut(功能,时间)和 setTimeOut(function(),time)之间的区别
答案 0 :(得分:0)
基本上,要么定义函数,要么稍后将其作为setTimeout
的第一个参数传递:
function onTimeout() {
}
setTimeout(onTimeout, 3000);
...或者您在调用setTimeout
时提供匿名函数作为参数:
setTimeout(function() {
// Do stuff
}, 3000);
答案 1 :(得分:0)
以下示例将解释其中的区别:
在超时时调用已定义的函数。
setTimeout(function() {
alert("Time is up!");
}, 1000);
在超时时调用匿名函数。
{{1}}
第一个示例调用已定义的函数,而另一个函数在程序上调用代码作为匿名函数。我根据需要使用它们。
答案 2 :(得分:0)
另外两个答案是正确的,但万一你的问题不是关于匿名函数,而是类似这样的事情
function onTimeout(){
console.log('foo');
};
setTimeout(onTimeout, 1000); // First form
setTimeout(onTimeout(), 1000); // Second Form
不同之处在于,在第一种形式中,onTimeout函数在1秒后被调用,这通常是期望的结果。
在第二种形式中,立即调用Timout,并且在1秒后调用返回的任何函数;在这种情况下,将调用undefined,因为console.log返回undefined。因此该函数将立即执行,1秒后不会发生任何事情。