JavaScriptでは関数はすべてクロージャです。 ではそもそもクロージャってなんなんでしょうか。 クロージャ?? クロージャの簡単な定義として 「自分を囲むスコープにある変数を参照できる関数」 が挙げられます。 言葉ではパッとしないかもしれませんが、コードを一つづつ追っていくと、 入門としてのクロージャは簡単に理解できます。 スコープ まずJavaScriptは関数ごとにスコープが作られます。 スコープとは変数を参照できる範囲のことです。 その範囲外では変数は参照できません。 function func() { var value = 1; console.log(value); } func(); // 1 console.log(value); // undefined