
83
3.5 クロージャ
む仕組みを淡々と処理します。実世界では大して気にすべきことでもありません。
3.5
クロージャ
JavaScript
のクロージャは人生における大いなる謎のひとつです。最近の全イン
ターネットの調査では、約
23%
のブログが
JavaScript
のクロージャについての記事
を載せています
†
。
冗談です。クロージャは、どんな理由があるかはわかりませんが、様々な理由のた
めに多くのプログラマーにとって謎であり続けています。ここで
JavaScript
でのク
ロージャの詳細を説明するために時間を割きますが、幸運なことに、説明はとてもシ
ンプルです。本節ではスコープのルールと、クロージャをシミュレートする小さなラ
イブラリを構築します。そのライブラリを使って、本章ですでに説明したグローバル
スコープと関数スコープ、そして本節で説明する自由変数とクロージャの詳細を探り
ます。
まず、クロージャは第一級関数ととても密接な関係にあるということを述べてお
きます。第一級関数を持たない言語であってもクロージャをサポートすることはで
きますが、そのような場合は大抵、完全なクロージャと言えるものではありません。
JavaScript
は第一級関数をサポートしているため、クロージャは即席でカプセル化さ
れた状態を渡すための強力な手段となります。
本章の残りと 4 章では、クロージャによって確保される変数の名前をすべて大文字
で記述します。これは一般的に JavaScript で行われる記述方法ではなく、このよ
うな記法を推奨するものでもありません。あくまで説明上の都合でによる記述です。 ...