JS クロージャの機能は、A の内部関数 B の実行は A の変数に依存する必要があるため、A が実行されて返された後で、JavaScript のガベージ コレクション メカニズムが A によって占有されていたリソースを再利用するのを防ぐことです。クロージャが使用されていない場合、関数 B が実行に依存する変数がグローバル汚染を引き起こします。
閉包の本質
集合 S は、Cl( S)= S (cl ここではクロージャ、クロージャです)。特に、空集合の閉包は空集合であり、X の閉包は X です。集合の交差の閉包は常に、集合の閉包の交差の部分集合 (必ずしも適切な部分集合であるとは限りません) です。有限個の集合の和集合の閉包は、これらの集合の閉包の和集合と等しく、ゼロ集合の和集合は空集合であるため、この命題には、空集合の閉包に関する前述の特殊なケースが含まれます。無限集合の和集合の閉包は、これらの集合の閉包の和集合と必ずしも等しいわけではありませんが、前者は後者の親集合でなければなりません。
A が S を含む X の部分空間である場合、A で計算された S の閉包は、)) 交差における A と S の計算された閉包に等しくなります。特に、A が Cl_X(S) のサブセットである場合に限り、S は A 内で密になります。
クロージャの例
プライベート変数のシミュレーション:
function Counter(start){ var count = start; return{ increment:function(){ count++; }, get:function(){ return count; } } } var foo = Counter(4); foo.increment(); foo.get();// 5
ここで、Counter 関数は、関数 Increment と関数 Get の 2 つのクロージャを返します。どちらの関数も外側のスコープ Counter への参照を維持するため、このスコープで定義された変数 count に常にアクセスできます。
推奨チュートリアル: 「JavaScript」
以上がJS クロージャの役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。