起因:
閑來無事和同事交流遇到過那些經(jīng)典的面試題,同事說有次面試讓用用setTimeout實(shí)現(xiàn)setInterval并實(shí)現(xiàn)clearInterval,話不多說show me code!
function setInv (callback, time) {
const timmer = setTimeout(() => {
setInv(callback, time)
if (!window.isClear) callback()
// 下邊這行代碼是否有必要呢?
window.clearTimeout(timmer)
}, time)
return timmer
}
function clearInv (timmer) {
window.isClear = true
window.clearTimeout(timmer)
}
const myTask = setInv(() => console.log(Date.now()), 2)
setTimeout(() => {
console.log('清除定時(shí)')
clearInv(myTask)
}, 5000)
疑問:
同時(shí)也有個(gè)問題setTimeout使用過后要不要清楚釋放內(nèi)存,還是說JS底層的垃圾回收會(huì)幫我做這件事?跪請(qǐng)大神明示
請(qǐng)戳這里??在線演示
LiveDemo