Closure
クロージャとは、関数とその定義環境の結合であり、外側の関数が復帰した後でも、内側の関数が外側の関数の変数へアクセスできるようにする。
目的
データの隠蔽、状態の保持、関数ファクトリを実現する、関数型プログラミングの中核技術である。
メカニズム
関数は生成時に字句環境(変数の束縛)を捕捉する。外側の関数が復帰した後も、クロージャはその環境への参照を保持し続ける。用途にはプライベート変数、コールバックの状態、カリー化、モジュールパターンがある。ループ変数を意図せず捕捉しないよう注意が必要である。
ユースケース
- 関数型プログラミング
- データのプライバシー
- コールバックの状態保持