クロージャとは:
関数のスコープとそのすべての変数は、関数の実行終了後に破棄されます。ただし、クロージャを作成した後、関数のスコープはクロージャが存在しなくなるまで保存されます。
JavaScript では、オブジェクトが参照されなくなった場合、そのオブジェクトはガベージ コレクション メカニズムによってリサイクルされます。
クロージャーの役割:
1. 関数内の変数を読み取ることができます
2. これらの変数の値をメモリに保存します。
クロージャによって発生する可能性のある問題:
-
クロージャを使用すると、関数内の変数がメモリに格納され、大量のメモリが消費されるため、クロージャを悪用することはできません。悪用しないと、Web ページでパフォーマンスの問題が発生します。
-
一般に、関数の実行が完了すると、ローカルのアクティブ オブジェクトは破棄され、グローバル スコープのみがメモリに保存されます。ただし、クロージャの場合は状況が異なり、クロージャ関数が実行された後、匿名関数のスコープ チェーンが依然としてアクティブ オブジェクトを参照しているため、そのアクティブ オブジェクトは破棄されません。クロージャ関数のアクティブ オブジェクトは、匿名関数が破棄されるまで破棄されません。
https://blog.csdn.net/weixin_42153287/article/details/125582993