let config = {
alert: setInterval(() => {
console.log('alert')
}, 1000)
}
config = null
答案:
setInterval 的回调仍然每秒都会被调用一次
解析:
一般情况下,将对象赋值为 null
,那些对象将被垃圾回收(garbage collected),简称 GC,因为没有对对象的引用了。
垃圾回收: 用引用计数的方式进行
然而,此题中 config
对象中的 setInterval
的回调是箭头函数,所以他的上下文环境绑定到了 config
上,回调函数仍然保留着对 config
的引用,因此 config
不会被垃圾回收。
PS:此题出自<<高级前端面试>>小程序,可前往学习。
网友评论