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 に答える