クロージャは、関数と、その関数が宣言されたレキシカル環境の組み合わせです。 レキシカルスコープ 次のような関数を考えます。 function init() { var name = 'Mozilla'; // name は、init が作成するローカル変数 function displayName() { // displayName() は内部に閉じた関数 alert(name); // 親関数で宣言された変数を使用 } displayName(); } init() 関数はローカル変数 name を作成し、それから関数 displayName() を定義しています。displayName() は init() の中で定義されている内部関数で、その関数本体の内部でしか利用できません。displayName() 自体はローカル変数を持っていませんが、外側の関数で宣言された変数にアクセスでき