謎の機能クロージャ
Javascript関連のを読んでるとクロージャって何かとてつもない機能があるような話をあちこちで見て、クロージャを余り理解してない自分は何のことかと思ったりしてたけど、最近少し謎が解けた。
クロージャ - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3
ここを見ると例としてこんな風に書かれてる
function newCounter() { var i = 0; return function() { // 無名関数 i = i + 1; return i; } } c1 = newCounter(); alert(c1()); // 1 alert(c1()); // 2
ん?無名関数?、ああ、何だxyzzyで良くある奴かと。lambdaみたいな感じね。ということは、これって前にxyzzyので書いてた、こういうのも。
- letの変数をletの外から使う。http://d.hatena.ne.jp/himadatanode/20061012/p2
クロージャだったのかと今頃気づいた。でも、これを何かに使った事とって殆どないけど。