頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?というスタンスで最強のナレッジベースを目指すブログ

【Javascript】クロージャとオブジェクト指向プログラミング

クロージャとは

オブジェクトの状態を保持する仕組みのこと。
つまり、オブジェクト指向プログラミングを可能にする。
下記を満たすとそのコードはクロージャとして機能する。

  • 関数の中にローカル変数と、もう一つ関数を用意する。
  • ネストした関数内でローカル変数を参照させる。
function closure(){
  var num=0;
  
  return function(){
    alert(num);
    num = num + 1;
  }
}

var c = new closure();
var d = new closure();
c();  //0
c();  //1
c();  //2
d();  //0
d();  //1
d();  //2