01. クロージャとはなにか
クロージャとは、
- ある関数から返された関数
- 返された関数が生成された時にその外側にあった環境(変数)
が組み合わさったもの。
02. なぜ重要? / 実際の現場でどう使う?
-
クロージャを使用することで関数の外側からのアクセスをブロックできるため
☞ 変数の再代入による予期しないエラーを防止する -
また、同じような処理を行う場合をクロージャした関数を流用できる
☞ コードの簡略化により、可読性を上げる
03. クロージャの例
A. クロージャした関数 : func2の"x"は外側からアクセスできない
const func1 = x => func2(y) => x + y;
const addTen = func1(10);
addTen(90) // => 100
x = 100; // func2の"x"に影響しない
addTen(90) // => 100
B. クロージャしてない関数 : func3の"x"は外側からアクセスできる
let x = 10;
const func3 = y => x + y;
func3(90) // => 100
x = 100; // func3の"x"に影響する
func3(90) // => 190 (100が返ってきてほしい)