コンテンツへスキップ
uencoder

Closure

クロージャとは、関数とその定義環境の結合であり、外側の関数が復帰した後でも、内側の関数が外側の関数の変数へアクセスできるようにする。

目的

データの隠蔽、状態の保持、関数ファクトリを実現する、関数型プログラミングの中核技術である。

メカニズム

関数は生成時に字句環境(変数の束縛)を捕捉する。外側の関数が復帰した後も、クロージャはその環境への参照を保持し続ける。用途にはプライベート変数、コールバックの状態、カリー化、モジュールパターンがある。ループ変数を意図せず捕捉しないよう注意が必要である。

ユースケース

  • 関数型プログラミング
  • データのプライバシー
  • コールバックの状態保持

関連用語

References