javascript - JS -clearTimeout 与删除

标签 javascript timer

我使用计时器在 1 分钟后调用函数。

var timer = setTimeout(function() {
    console.log("timer trigger");
}, 10000);

clearTimeout(timer); 清除计时器并删除计时器; 返回false

为什么删除不能与计时器一起使用?

最佳答案

delete timer; 实际上不会执行任何操作,因为您只能删除对象属性。 timer 不是对象属性,因此无法删除。 (从技术上讲,它是 window 对象的一个​​属性,但 Javascript 指定除非您分配 window.timer ,否则您无法删除顶级变量)。当删除返回 false 时,意味着没有任何内容可删除。

您设置的超时是一个函数引用。这就是需要删除的内容,而不是 setTimeout 返回的整数。只有运行时环境(浏览器)知道如何通过其 id 删除该函数引用,这是从 setTimeout 返回的内容。

关于javascript - JS -clearTimeout 与删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30389426/

相关文章:

javascript - 将 Chart.js 图表放入 JQuery 工具提示中?

javascript - 在javascript中从数组中获取随机X个项目

javascript - 使用react-data-table-component导出csv进行数据导出

javascript - 单击工具提示时更改 Bootstrap 的文本

javascript - (重新)将 DOM 建模为特定投影 JavaScript || jQuery

javascript - 为计时器添加开始、停止、重置按钮

javascript - 防止隐藏选项卡上的 Chrome 计时器以 1 秒分辨率运行

java - 检查 Java 定时器是否被取消

c# - 如何使用带有 .NET Core 的 SignalR 从集线器类使用服务器端计时器?

java - 如何在 java 中以周期性间隔执行操作?