2、垃圾回收与上下文引用

let config = {
    alert: setInterval(() => {
        console.log('alert')
    }, 1000)
}

config = null

答案:

setInterval 的回调仍然每秒都会被调用一次

解析:

一般情况下,将对象赋值为 null,那些对象将被垃圾回收(garbage collected),简称 GC,因为没有对对象的引用了。

垃圾回收: 用引用计数的方式进行

然而,此题中 config 对象中的 setInterval 的回调是箭头函数,所以他的上下文环境绑定到了 config 上,回调函数仍然保留着对 config 的引用,因此 config 不会被垃圾回收。

PS:此题出自<<高级前端面试>>小程序,可前往学习。

你可能感兴趣的:(2、垃圾回收与上下文引用)