为什么在 3 秒后重复调用该函数?
<button onclick="myFunction()">Try it</button>
<script>
function myFunction()
{
alert("hello");
setTimeout(myFunction(),3000);
// setTimeout(function(){ alert("Hello") }, 3000);
}
</script>
为什么在 3 秒后重复调用该函数?
<button onclick="myFunction()">Try it</button>
<script>
function myFunction()
{
alert("hello");
setTimeout(myFunction(),3000);
// setTimeout(function(){ alert("Hello") }, 3000);
}
</script>
您myFunction
立即调用,然后将其返回值 ( undefined
) 传递给setTimeout
删除,()
以便您传递函数而不是调用它。
改变:
setTimeout(myFunction(),3000);
至:
setTimeout(myFunction,3000);
看看这段代码
setTimeout(myFunction(),3000);
()
后面myFunction
是说,调用 myFunction 并存储它返回的任何内容。3秒后调用。
您需要做的不是调用该函数,而是存储对它的引用。所以你需要删除()
.
您的代码需要看起来像这样
setTimeout(myFunction,3000);
更改后,您将在单击确定后每 3 秒收到一次警报,而不是像您看到的大量警报。
使用setTimeout的时候需要给回调函数,而不是调用回调!XD 而不是:
setTimeout(myFunction(), 3000);
你必须写:
setTimeout(myfunction, 3000);
请记住,在末尾添加 () 将调用该函数。在您的示例中,您正在执行无限循环。