「var」で宣言されたJavaScriptの変数の有効期間はどれくらいですか。確かに、それは予想通りではありません。
<script>
function(){
var a;
var fun=function(){
// a is accessed and modified
}
}();
</script>
ここで、JavaScriptガベージはいつどのように変数を収集しますa
か?は内部関数のクロージャの一部であるためa
、内部関数fun
は外部コンテキストへの参照として渡される可能性があるため、理想的にはガベージコレクションを取得しないでください。したがって、外部コンテキストから fun
引き続きアクセスできるはずです。a
私の理解が正しければ、ガベージコレクションはどのように行われ、プログラムの実行まですべての変数をメモリに保持することができない可能性があるため、どのようにして十分なメモリスペースを確保するのでしょうか。