一言で言えば、クロージャはスコープ内の外部バインディングをキャプチャする関数です。
正式な定義: 多くの変数とこれらの変数にバインドされた環境を持つ式 (通常は関数)。これらの変数は式の一部とも呼ばれるためです。
自由変数とクロージャの関係: 自由変数はクロージャの作成時に閉じられます。
内部ロジックは
自由変数: 関数内に他の関数がある場合、これらの内部関数は外部関数で宣言された変数にアクセスできます (これらの変数は自由変数と呼ばれます)。
クロージャの 3 つの特徴:
1. 関数のネストされた関数
2. 関数内で外部パラメーターと変数を参照できます
3. パラメーターと変数はガベージ コレクション メカニズムによって再利用されません
クロージャの欠点は、メモリに常駐するため、不適切に使用するとメモリリークが発生しやすいことです。
1.メモリ内に長期間常駐可能2. グローバル変数の汚染を避ける
3. プライベートメンバーの存在
function fn(){//Closure fn() |
|||||||||||||||||||||||||||||||
<頭> | |
charset="UTF-8"> | |