setTimeout()JavaScript方法究竟如何工作?

And*_*ili 1 javascript

我不是那么喜欢JavaScript而且我有以下疑问与setTimeout()方法有关.

所以进入测试脚本我有:

function simpleMessage() {
    alert("This is just an alert box");
}

// settimeout is in milliseconds:
setTimeout(simpleMessage, 5000);
Run Code Online (Sandbox Code Playgroud)

因此,当我执行页面时,在5秒后执行simpleMessage()函数,并显示警告弹出窗口.

我明白当我这样做时:

setTimeout(simpleMessage, 5000);
Run Code Online (Sandbox Code Playgroud)

这意味着simpleMessage()函数必须在定时器设置后5秒后执行,但为什么使用simpleMessage而不是simpleMessage()来进行函数调用?

And*_*ion 5

simpleMessage是对函数的引用,而simpleMessage()执行函数.setTimeout需要一个函数引用来调用以后的时间.

为了使事情变得更加明显,你可以将函数声明编写为

// define my function (but don't execute it)
var myFunction = function() {
    alert('SOUND THE ALARMS!');
};

// start a timer that will execute the given function after the given
// period of time
setTimeout(myFunction, 5000);
Run Code Online (Sandbox Code Playgroud)

setTimeout文档.