JavaScriptのクロージャー
jsでクロージャーが理解できるとかなりできることが増えるらしいです。
教わってきたのでメモ代わりに。
クロージャーっていうのは関数を返す関数です。
下のコードは関数を叩くたび数字が+1されていきます。
function hoge(){
var x = 0; //関数hogeの中で変数xを定義
return function(){
x++; //hogeを呼び出すたびにx++された処理を返す
console.log(x);
}
}
var x = hoge();
x(); //1
x(); //2
x(); //3
一回目だけtrueを返すとか、もできます。
function hoge() {
var x = false;
return function () {
if (x) {
console.log('false');
} else {
console.log('true');
}
x = true;
}
}
var x=hoge();
x(); //true
x(); //false
x(); //false