なにもの??
クロージャ(英語:closure)とは、関数とその関数が宣言されたときの外側にあった環境を合わせて指す用語です。
(会話での使い方 ⇒ この変数は外部からいじられたくないので、クロージャを返す関数を作ろう!)
なぜクロージャが重要なのか
クロージャを使うことで変数を外部からのアクセスを遮断したり、制限したりできます。そのため、堅牢性の高いプログラムを書くことができます。
使用例
qiita.js
function alertDeadline(year, month, day) {
let deadline = new Date(year, month - 1, day, 0, 0, 0);
return () => {
let diff = Math.ceil((deadline.getTime() - new Date().getTime()) / (1000 * 60 * 60 * 24));
return `締め切りまであと${diff}日です。`;
}
}