在Javascript中关闭的生命周期

时间:2013-06-04 19:13:43

标签: javascript closures

有人能否了解关闭的生命周期?如何杀死/摧毁它?列出所有闭包的任何方法?我google了很多,但无法找到任何相关内容,至少任何相关链接都会有所帮助。

示例:

var inc = function() {
    var x = 0; // creating a closure
    return function(){
        return x++;
    }
}
alert(inc());

alert(inc())函数调用返回时,闭包是否被终止?

2 个答案:

答案 0 :(得分:3)

闭包是函数实例的一部分 垃圾收集器会在收集函数时收集它。

没有办法列出它们。

答案 1 :(得分:2)

闭包持续到垃圾收集器接收它们为止。这通常发生在没有更多引用指向它时(如果没有,那么它是内存泄漏)。你不能手动销毁它们,但是如果你知道引用它的是什么,你可以delete referenceVariable它应该触发GC。

据我所知,无法获得闭包列表。