過去に、JavaScriptにおけるクロージャの説明を書籍からメモしました。
これらに続き、別の本で分かりやすい説明を見つけたので、メモしておきます。
以下、徹底マスターJavaScriptの教科書より引用
8.6 クロージャ
JavaScriptのすべての関数はクロージャを定義します。クロージャはJavaScriptの強力な機能で、
これによって変数の隠蔽や永続化など、さまざまなことを実現できます。JavaScript はSchemeから
大きな影響を受けて言語仕様が決定されましたが、クロージャもSchemeから持ち込まれた機能です。
[1] クロージャ(関数閉包)
**クロージャ(関数閉包)**とは、プログラミング言語における用語で、次のような関数とそのような関数
の機能を実現するデータ構造とを合わせたものをいいます。
「自分自身が定義された環境において、関数内の自由変数の名前解決を行う」
この本のクロージャの説明と事例は、とても分かりやすくてよかった。
どのくらい分かりやすいかといえば、
「ここから先、さらに理解を深めるには、JavaScriptインタプリタのソースを読むしかない」
と思えるぐらいに。