JS - clearTimeout与删除

时间:2015-05-22 06:04:04

标签: javascript timer

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

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

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

为什么删除不适用于计时器?

1 个答案:

答案 0 :(得分:4)

delete timer;实际上不会做任何事情,因为您只能删除对象属性。 timer不是对象属性,因此无法删除。 (从技术上讲,它是窗口对象的属性,但Javascript种类除非您指定window.timer,否则您无法删除顶级变量)。当delete返回false时,表示没有要删除的内容。

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