반응형
클로저 사용 사례
다음 코딩은 클로저를 활용한 카운터 함수의 예를 보여주고 있습니다.
counter
함수는 매개변수로 step
을 받으며, 기본값으로 1
을 가집니다. 이 함수는 내부에 count
라는 변수를 선언하고 0
으로 초기화한 다음, increaseCount
라는 내부 함수를 반환합니다. increaseCount
함수는 count
를 step
만큼 증가시키고, 변경된 count
값을 반환합니다.
다음은 코드의 핵심 부분입니다.
function counter(step = 1) {
var count = 0;
return function increaseCount() {
count = count + step;
return count;
};
}
var incBy1 = counter(1);
var incBy3 = counter(3);
incBy1
와 incBy3
는 counter
함수로부터 반환된 두 개의 클로저입니다. 각각은 자신만의 독립적인 count
상태를 가지고, incBy1
은 step
이 1
로, incBy3
은 step
이 3
으로 설정되어 있습니다.
incBy1(); // count는 1 증가
incBy1(); // 다시 1 증가
console.log(incBy1()); // 출력: 3, count는 총 3 증가
incBy3(); // count는 3 증가
incBy3(); // 다시 3 증가
incBy3(); // 다시 3 증가
console.log(incBy3()); // 출력: 12, count는 총 12 증가
정리
각각의 클로저 호출은 count
를 해당 step
만큼 증가시키며, 콘솔에는 마지막으로 호출된 count
값이 출력됩니다. incBy1
의 경우 세 번 호출되어 총 3
이 되었고, incBy3
는 세 번 호출되어 총 12
가 되었습니다. 이 예제는 클로저가 각각의 함수 호출 사이에서 상태를 어떻게 유지하는지를 보여줍니다.
반응형
'도서로 공부하는 프로그래밍 > 코딩 자율학습' 카테고리의 다른 글
[NodeJS] 간단한 라우터 만들기 (65) | 2024.04.27 |
---|---|
[NodeJS] OK를 반환하는 간단 서버 만들기 (60) | 2024.04.26 |
[JS] 클로저 개념과 사용 사례 (57) | 2024.04.24 |
[JS] 스트링을 전개연산자(스프레드 연산자)로 배열 객체로 만드는 사례 (63) | 2024.04.23 |
[JS] ES6의 전개구문 ...으로 이터레이터를 소비 (50) | 2024.04.22 |