개발자/JavaScript
클로저(closure) 함수
봉구리
2023. 3. 12. 00:19
클로저 함수란?
함수 내부에 선언된 변수를 외부에 사용할수 있게 해주는것
클로저를 사용하면 함수 내부에서 생성한 변수를 외부에서 변경할 수 없음.
따라서, 함수 내부에서 생성한 변수를 보호할 수 있다
function makeCounter() {
let count = 0;
function increment() {
count += 1;
console.log(count);
}
function decrement() {
count -= 1;
console.log(count);
}
return {
increment,
decrement,
};
}
const counter = makeCounter();
counter.increment(); // 1
counter.increment(); // 2
counter.decrement(); // 1
일반 함수와 내부함수(클로저)의 차이점
일반함수와 클로저의 가장 큰 차이점은 아래와 같다.
- 은닉화와 캡슐화를 지원한다
- 외부함수가 소멸한 후에도 환경(변수)을 기억하고 이를 제공한다