私はキャメロンのを読んでいます。HTM5 JavaScript & JQuery JavaScriptと閉鎖の彼のセクションでは、彼はこの例を示します:それは、その時点で存在していて、そのコピーを保持として、その環境上で「閉」F2無名関数は関数内で定義されたJavaScriptのクロージャと変数の参照
function f2()
{
var i = 0;
return function() {
return ++i;
};
}
環境。変数iは、関数が宣言されたときにアクセス可能であったため、関数が呼び出されたときでも使用できます。 JavaScriptは、無名関数が変数iを参照しており、この関数は破棄されていないため、に依存するi変数を破棄していないことを認識しました。
「JavaScriptが実現しました...」と書かれている太字のセクションでは、JSが囲まれた変数(つまりクロージャの外側)とクロージャの間の依存関係を識別したときに、変数に依存していなければ、それは破壊されます(ガベージコレクションされます)? var iは破壊されますが、上記のclosureの例ではvar iは破壊されませんか?
function f2()
{
var i = 0;
}
キャメロン、デーン(2013-10-30)。ソフトウェアエンジニアがHTML5、JavaScript、jQueryを学ぶ:標準ベースのWebアプリケーションのガイド(p。74)。 Cisdal Publishing。キンドル版。
基本的にはいです。 –
はい。もはや参照されなくなると、GCによって破壊されます。 – micmia