#クロージャとは
関数とその関数が宣言された時の外側にあった環境(変数など)を合わせて指す用語です。
下の例では、numAの値は、返り値である関数の中に同封(enclosed) → クロージャ されます。
function add(numA) {
return (numB) => numA + numB;
#なぜクロージャが重要なのか、どんな時に活用できるのか
クロージャを活用すると、変数の値を維持することができるプライベート変数を作成することができ、外部から変数を参照することはできなくなります。
グローバルスコープにある変数だと、変数が意図せず変更されないか気を使わないといけないですよね。
#クロージャの例
const countUp = () => {
let count = 0;
return {
addOne: () => {
count++;
},
show: () => {
console.log(count);
}
};
})();
countUp.show(); // 0
countUp.addOne();
countUp.show(); // 1