Contents

JsQuestions-2_定时器

Contents
// 发生什么?
let config = {
  alert: setInterval(()=>{
      console.log('Alert!')
  }1000)
}
config = null
  • A:setInterval 的回调不会被调用
  • B:setInterval 的回调会被调用一次
  • C:setInterval 的回调会被每秒钟调用
  • D:我们从没调用过config.alert(),config为null

解析:

答案:C

一般情况下当我们将对象赋值为null,那些对象会被进行垃圾回收(garbage collected)因为已经没有对这些对象的引用了,然而,setInterval的参数是一个箭头函数(所以上下文绑定到对象config了),回调函数仍然保留着对config的引用,只要存在引用,对象就不会被垃圾回收,因为没有被垃圾回收,setInterval的回调每1000ms会被调用一次