Hatena::Groupjavascript

lnzntのJavaScript日記 このページをアンテナに追加 RSSフィード

2010年11月09日(火)

クロージャ(その3)

| 09:28 |  クロージャ(その3) - lnzntのJavaScript日記 を含むブックマーク はてなブックマーク -  クロージャ(その3) - lnzntのJavaScript日記  クロージャ(その3) - lnzntのJavaScript日記 のブックマークコメント

もっとシンプルな例

参考

function makeCounter() {
  var count = 0;
  return function() { return count++; };
}

var counter = makeCounter();
var count = 20;      // これは影響しない
counter();   // 0
counter();   // 1
counter();   // 2

関数を定義した環境の寿命が尽きていても同じ。

var counter = function () {
  var count = 0;
  return function() { return count++; };
}();
counter();   // 0
counter();   // 1
counter();   // 2

参考。Ruby で。