为什么以下setTimeout会立即打印出来?

时间:2012-05-11 08:55:03

标签: javascript node.js

以下内容立即打印我的信息

setTimeout(console.log('delayed hello world'), 10000);

这有点违反直觉。因为我的信息会立即打印出10秒结束时发生的事情吗?

2 个答案:

答案 0 :(得分:5)

您需要使用匿名函数:

setTimeout(function() { console.log('delayed hello world') }, 10000);

详细了解如何在MDN

setTimeout函数传递参数

答案 1 :(得分:4)

您正在运行console.log(因为您在其末尾有())并将其返回值传递给setTimeout而不是传递函数。

var myFunction = function () { console.log('delayed hello world'); }
setTimeout(myFunction, 10000);