記事のねらい
とある事務局から指示があったため- もとい、クロージャについて学んだので備忘録として投稿する
クロージャとは??
”関数”と”その関数が宣言されたとき外側にあった環境”のを合わせて指す言葉
で、なんやねん。
ということで、もう少し詳しく書くと、、、
- ”関数”と”その関数の中に同封された変数”のことらしいです。
実際にサンプルのコードで確認してみると。
サンプル
const calc = (exponent) => {
let exp = exponent; // ←これがこの後、関数の中に同封(enclosed)される変数
return function(base){
return base ** exp;
};
}
const exe = calc(2) // ←このとき、変数expに2が同封され以降の関数に引き渡される
exe(3) // 3^2で9が返される・・・はず
exe(4) // 4^2で16が返される・・・はず
と、このような形になり、クロージャを使うことで関数のバリエーションが簡単に増やせます。
終わりに
- Qiita初投稿ですが、上手に書かれている方が本当にすごいな。。。と実感しました。