我知道使用setTimeout的正确方法如下:
setTimeout(function(){alert('hi!');}, 3000);
或在外部定义函数,并传递引用:
var foo=function(){alert('hi!');}
setTimeout(foo, 3000);
如果我把它写成:
会发生什么setTimeout(alert('hi!'), 3000);
看起来alert('hi!')
已正确执行。
答案 0 :(得分:8)
alert("hi")
立即执行 ,其结果undefined
传递给setTimeout
...
现在,如果您只是想在指定参数时避免使用包装器,请尝试以下操作:
setTimeout(alert, 3000, "hi!");
答案 1 :(得分:0)
在前两个示例中,函数将在定义的延迟后作为回调函数在setTimeout
函数内调用,而第三个示例将立即执行。