> 2015/01/29 (木) 11:35:11 ◆ ▼ ◇ [qwerty]> > クロージャクロージャとは関数を返す関数で、関数の中にあるローカル変数の状態を保持できる関数のことである
> 完全カプセル化
function Counter(cnt) {
var count = cnt;
return function() { // 無名関数→これがクロージャじゃ!
return ++count; // スコープチェーンにより外部ローカル変数countを参照
};
}
var f1 = Counter(0);
console.log(f1()); // 1
console.log(f1()); // 2
console.log(f1()); // 3
var f2 = Counter(10);
console.log(f2()); // 11
console.log(f2()); // 12
console.log(f2()); // 13
console.log(f1()); // 4
console.log(f2()); // 14
これがクロージャだ
参考:2015/01/29(木)11時34分14秒