クロージャーとは関数を返す関数を実行した時に周辺の変数(環境)も一緒に返しされること。
【クロージャーの嬉しさ】
1、グローバルスコープではないので外から不意にデータを書き換えられることを防ぐことができる。
2、引数を渡して同じ処理を実行する際に処理内容を何回も記載しなくてもよい
【クロージャーの例】
function plus (initNumber){
function innerFunc (number){
return initNumber + number
}
return innerFunc
const result1 = plus(5) //resultの中にはinnerFuncが入っている(初期値5)
const result2 = plus(100) //resultの中にはinnerFuncが入っている(初期値100)
console.log(result1(10)) // 15
console.log(result2(10)) // 110
console.log(result1(50)) // 55
console.log(result2(200) // 210