トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

javascritpメモ

[カテゴリ:Javascript]

クロージャ

  • 「functionを返すfunction」を使うことで環境を閉じ込める。
  • functionに入る毎にスコープがネストする。
  • ネストしたfunctionを呼ぶ=呼んだfunctionのスコープで実行される。
<html>
<script>

function funcA(txt) {
  var a = 0;
  function funcB() {
    return txt + ":" + (++a);
  }
  return funcB;
}

var funcA_copy1 = funcA("copy1");
alert(funcA_copy1());  // copy1:1
alert(funcA_copy1());  // copy1:2
var funcA_copy2 = funcA("copy2");
alert(funcA_copy2());  // copy2:1
alert(funcA_copy1());  // copy1:3

</script>
</html>
<html>
<script>

var counter = function(val, step){
    return function(){
        val += step;
        return val;
    };
};

var c1 = counter(0, 1);
alert(c1());        // 1
alert(c1());        // 2
alert(c1());        // 3

var c2 = counter(100, 10)
alert(c2());        // 110
alert(c2());        // 120
alert(c2());        // 130

</script>
</html>

これでできる! クロスブラウザJavaScript入門:第5回 JavaScriptの基礎知識#2:クロージャ編|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0005

JavaScript のクロージャ と オブジェクト指向 | すぐに忘れる脳みそのためのメモ
http://jutememo.blogspot.jp/2010/08/javascript.html

最終更新時間:2012年03月28日 13時04分36秒