最終更新:2018-01-08 (月) 06:05:42 (222d)  

JavaScript/クロージャ はてなブックマークを見る
Top / JavaScript / クロージャ

Closures

関数とその関数が作られた環境という2つのものが一体となった特殊なオブジェクト

https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures

メモ

  • 関数の外側で定義された変数を持つ関数の実行時オブジェクト
  • この環境は、クロージャが作られた時点でスコープ内部にあったあらゆる変数によって構成されています。

メモ

  • 静的スコープ: ある変数がどの値を参照するかは静的に決まる
  • メモリ管理の仕組み: 参照されなくなったデータはガベージコレクションにより解放される
  • クロージャとはこの2つの仕組みを利用して、関数内から特定の変数を参照し続けることで関数が状態をもつことができる仕組み
  • https://asciidwango.github.io/js-primer/basic/function-scope/

用途

  • 関数に状態を持たせる手段として
  • 外から参照できない変数を定義する手段として
  • グローバル変数を減らす手段として
  • 高階関数の一部部分として

関連