クロージャについて
コーディング
・クロージャー
定義・・・レキシカルスコープの変数を関数が使用している状態
ケース01・・・プライベート変数の定義
グローバルに定義するとどこからでも参照できるため、関数スコープ内に変数を定義
・グローバルに定義
let num = 0
console.log("Global", num);
increment()
increment()
increment()
function increment() {
num = num + 1
console.log(num);
}
・クロージャー使用
function incrementFactory() {
let num = 0
function increment() {
num = num + 1
console.log(num);
}
return increment
}
const increment = incrementFactory()
increment()
increment()
increment()
ケース02・・・動的関数
function addNumberFactory(num) {
function addNumber(value) {
return num + value;
}
return addNumber;
}
const add5 = addNumberFactory(5);
const result = add5(5);
const result = add5(10);
変数numを固定した関数を生成できます