setTimeout的第一个参数

问题引入

看如下一段js代码:

图一

如预期,控制台5s后输出testFn的字符串,当改动一个小地方后,

图二

然而,字符串的输出并没有延迟,而是立刻执行。这是怎么回事呢?~~


分析

图一和图二的代码看似区别不大却大有文章,一不小心就很可能犯错,两者含义并不相同。

1. setTimeout(fn, delay)

传入的fn是一个函数地址

2. setTimeout(fn(), delay)

传入的fn()指函数执行,而非函数地址

你可能感兴趣的:(setTimeout的第一个参数)