トップページ > コンテンツ > プログラミング入門 > Ajax入門 > JavaScript入門 > Javascript基本 > クロージャ

関数の状態を保存する時(関数カウンタ等)に使える。

function outer(){
   var x = 1;
   function inner(){
       alert(x);
       x = x + 1;
   };
   return inner; //returnが無いとinnerを宣言しただけの状態となり、以下のouter();を実行しても何も起きない。
}

outer(); //1を表示
outer(); //2を表示

outer関数のcallオブジェクトにinner関数のcallオブジェクトを持たせていることにより、
inner関数の状態を保持しているイメージ。
詳しくは、以下参照。
変数のスコープとは
最終更新:2014年02月11日 14:21