只有第二种和第三种是正确的用法。
setTimeout(函数名, 延迟)
setTimeout(show(), 1000);
show()
是函数运行,这种传递方式真正传进去的是 show
函数的返回值。因此会直接执行,无延迟。
setTimeout(匿名函数, 延迟)
setTimeout(show, 1000)
show
是函数引用,这种方式相当于一个延迟执行的匿名函数。
1
|
(function(__callback){
|
setTimeout(字符串代码, 延迟)
setTimeout("show()", 1000)
相当于一个延迟执行的 (new Function("show()"))()
。在一定延迟之后用字符串代码创建一个新的函数。