setTimeout的第一个参数

问题引入

看如下一段js代码:

图一

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

图二

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


分析

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

1. setTimeout(fn, delay)

传入的fn是一个函数地址

2. setTimeout(fn(), delay)

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容