1

有人可以阐明关闭的生命周期吗?如何杀死/摧毁它?有什么办法可以列出所有的闭包?我用谷歌搜索了很多,但找不到任何相关内容,至少任何相关链接都会有所帮助。

例子:

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

alert(inc())函数调用返回时关闭是否被杀死?

4

2 回答 2

4

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

没有办法列出它们。

于 2013-06-04T19:15:38.753 回答
3

闭包一直持续到垃圾收集器捡起它们。这通常发生在没有更多指向它的引用时(如果没有,那么它就是内存泄漏)。您不能手动销毁它们,但是如果您知道引用它的内容,则可以delete referenceVariable并且它应该触发 GC。

据我所知,没有办法获得关闭列表。

于 2013-06-04T19:16:03.360 回答