クロージャーとは
ココのクロージャーの説明が分かりやすい
クロージャーとは「外側のスコープにある変数への参照を保持できる」という関数が持つ性質のことです。
静的スコープ: ある変数がどの値を参照するかは静的に決まる
メモリ管理の仕組み: 参照されなくなったデータはガベージコレクションにより解放される
クロージャーとはこの2つの仕組みを利用して、関数内から特定の変数を参照し続けることで関数が状態を持てる仕組みのことを言います。
クロージャーはさまざまな用途に利用されますが、次のような用途で利用されることが多いです。
関数に状態を持たせる手段として
外から参照できない変数を定義する手段として
グローバル変数を減らす手段として
高階関数の一部分として