首页 >web前端 >js教程 >为什么 `setTimeout(GetUsersNumber(), 5000)` 立即执行而不是 5 秒后执行?

为什么 `setTimeout(GetUsersNumber(), 5000)` 立即执行而不是 5 秒后执行?

Linda Hamilton
Linda Hamilton原创
2024-12-02 07:08:09750浏览

Why Does `setTimeout(GetUsersNumber(), 5000)` Execute Immediately Instead of After 5 Seconds?

setTimeout 中的函数调用与函数对象

为了避免服务器过载,Web 开发人员打算使用每 5 秒更新一次页面值setTimeout()。然而,代码中的函数似乎是立即触发的,而不是延迟的。

提供的代码中:

<pre class="brush:php;toolbar:false">
setTimeout(GetUsersNumber(), 50000);

错误在于函数调用和函数对象的区别JavaScript。在这种情况下,函数名称后面包含括号,表示函数调用。要正确使用 setTimeout,需要函数对象,该函数对象的定义不带括号。

通过将代码修改为:

<pre class="brush:php;toolbar:false">
setTimeout(GetUsersNumber, 5000);

setTimeout 现在将在指定的延迟后调用 GetUsersNumber 函数对象5秒,确保页面值按照期望的时间间隔更新,而不会使服务器过载。

以上是为什么 `setTimeout(GetUsersNumber(), 5000)` 立即执行而不是 5 秒后执行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn