gpt4 book ai didi

javascript - Javascript 如何处理将 setInterval() 分配给变量?

转载 作者:行者123 更新时间:2023-12-01 02:05:04 25 4
gpt4 key购买 nike

我有一个看似基本的 javascript 问题,但我无法理解。为什么下面的代码片段有效(取自 w3 学校)?

本质上我要问的是为什么下面的“myVar”变量在没有显式调用的情况下执行setInterval方法?我最好的猜测是这与 javascript 处理变量赋值的方式有关?

<html>
<body>

<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<p>After clicking away the alert box, an new alert box will appear in 3 seconds. This goes on forever...</p>

<button onclick="myFunction()">Try it</button>

<script>
var myVar;

function myFunction() {
myVar = setInterval(alertFunc, 3000);
}

function alertFunc() {
alert("Hello!");
}
</script>

</body>
</html>

如果需要进一步说明,这里是我当前工作中的代码片段:

var refresh = setInterval(function() {
$("#div").load('Query.html');
}, 1000);

所以我的问题是,为什么上面的方法可以在其他地方不调用“刷新”变量的情况下工作?

最佳答案

setInterval() 本身执行循环调用(请参阅编辑)并返回处理循环调用的进程的 ID。分配返回值的目的是为了之后使用 clearInterval(),因为它要求您传递 setInterval() 的返回值(= 进程 ID)作为其参数。

在您的情况下,如果您希望您在 setInterval() 中传递的函数不再被调用(通过您使用 setInterval 创建的“循环调用链”)您只需执行clearInterval(refresh)即可。

编辑

setInterval 需要两个参数:一个内联函数(或函数指针)和一个整数。

setInterval 的作用是等待 {integer Passed} 毫秒,然后调用该函数并一遍又一遍地重复相同的操作,直到您调用 clearInterval 传递 setInterval 的返回值。

关于javascript - Javascript 如何处理将 setInterval() 分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com