Javascript JS-clearTimeout vs.delete

Javascript JS-clearTimeout vs.delete,javascript,timer,Javascript,Timer,我正在使用计时器在1分钟后调用函数 var timer = setTimeout(function() { console.log("timer trigger"); }, 10000); 清除超时(计时器)清除计时器并删除计时器返回false 为什么delete不使用计时器?删除计时器实际上不会做任何事情,因为您只能删除对象属性计时器不是对象属性,因此无法删除它。(从技术上讲,它是window对象的一个属性,但Javascript指定,除非您分配window.timer,否则您不能删

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

var timer = setTimeout(function() {
    console.log("timer trigger");
}, 10000);
清除超时(计时器)清除计时器并删除计时器返回false


为什么delete不使用计时器?

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


您设置的超时是一个函数引用。这是需要删除的,而不是
setTimeout
返回的整数。只有运行时环境(浏览器)知道如何通过其id删除该函数引用,该id是从
setTimeout
返回的实际上不会做任何事情,因为您只能删除对象属性<代码>计时器不是对象属性,因此无法删除它。(从技术上讲,它是window对象的一个属性,但Javascript指定,除非您分配
window.timer
,否则您不能删除顶级变量)。当delete返回
false
时,表示没有要删除的内容


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

返回的。您可能希望读取
delete
将删除该对象,而
clearTimeout
将清除与变量关联的计时器。此外,即使可以(尝试不使用var)删除计时器,这不会
clearTimeout
计时器。
delete
也不会关闭窗口或删除DOM元素。“为什么delete不使用计时器?”。与值无关,因为不能使用delete删除已声明的全局变量。请参阅调用内部方法的。您可能希望读取
delete
将删除对象,而
clearTimeout
将清除与变量关联的计时器。此外,即使您可以(尝试不使用var)删除计时器,这不会
clearTimeout
timer。
delete
也不会关闭窗口或删除DOM元素。“为什么delete不能使用定时器?”。与值无关,因为不能使用delete删除已声明的全局变量。请参阅,它调用内部方法。从技术上讲,它是全局对象的属性,与窗口对象同义,但大多数情况下仅在浏览器或类似浏览器的环境中。;-)我们不能删除函数引用。但是,我们可以删除顶级变量。从技术上讲,它是全局对象的一个属性,与窗口对象同义,但大多数情况下仅在浏览器或类似浏览器的环境中。;-)我们不能删除函数引用。但是,我们可以删除顶级变量。