最近クロージャを勉強したので備忘録として残しておきます。
クロージャとは
クロージャーとは、関数とその関数の中に同封された関数の「外」にある変数の組み合わせのことです。この説明だとよくわかりませんね、以下に例を示しておきます。
クロージャの例
qiita.js
function add(x) {
return (y) => x + y
}
const addOne = add(1);
const addTen = add(10);
この場合、変数xが関数addに内包されます。
addOneは、引数に1を加えた値を返す関数になります。
addTenは、引数に10を加えた値を返す関数になります。
<実行例>
quita.js
addOne(2) // 1 + 2 = 3
addTen(5) // 10 + 5 = 15
1つ目の例では、内包された1に引数の2加わり、3が出力されています。
2つ目の例では、内包された10に引数の5が加わり、15が出力されています。
クロージャの重要性
クロージャを使用すると、オブジェクトの変数やメソッドを他のプログラムから変更できないようにできます。コードが複雑になったり、チームでプログラミングをする時に、意図せず変数を書き換えてしまうことを防いでくれます。