function add(a) { console.log(a + first) } const first = 2 add(2)
function add(a) {
const first = 2
console.log(a + first)
}
add(2)
클로저를 활용하면, 어떤 함수 내부에서만 사용되는 일회성 함수의 매개변수가 생략이 가능하다.
BUT!
클로저가 많아지면 코드가 읽거나 고치기 어려워지고 버그 발생 쉽다.
let rate = 0.9
function A(number) {
const B = (number) => number * rate
return number.map(B)
}
함수 A ⇒ 클로저 생성
함수 B ⇒ 중첩 클로저
따라서, rate의 정확한 출저 알기 어렵다.