클로저의 활용

박경찬·2022년 7월 14일
0

JavaScript

목록 보기
12/26

클로저는 상태를 안전하게 변경하고 유지하기 위해 사용한다.
다시 말해, 상태가 의도치 않게 변경되지 않도록 상태를 안전하게 은닉하고 특정 함수에게만 상태 변경을 허용하기 위해 사용한다.

위코드는 전역 변수를 통해 관리되고 있기 때문에 언제든지 누구나 접근할수 있고 변경할수 있다. 이는 의도치 않게 상태가 변경될 수 있다는 것을 의미한다. 만약 누군가에 의해 의도치 않게 카운트 상태, 즉 전역 변수 num의 값이 변경되면 이는 오류로 이어진다.

카운트 상태를 안전하게 변경하고 유지하기 위해서는 함수안에 num변수를 참조하고 변경할수 있게 하는것이 바람직하다.

increase 함수가 호출될 때마다 변수num은 다시 선언되고 0으로 초기화되기 때문에 출력 결과는 언제나 1이다. 상태가 변경되기 이전 상태를 유지 못한다.

즉시 실행함수가 호출되고 즉시 실행 ㅎ마수가 반환한 함수가 increase변수에 할당된다.

즉시 실행함수는 호출된 이후 소멸되지만 즉시 실행 함수가 반환한 클로저는 increase 변수에 할당되어 호출된다. 이때 즉시 실행 함수가 반환한 클로저는 자신이 정의된 위치에 의해 결정된 상위 스코프인 즉시 실행 함수의 렉시컬 환경을 기억하고 있다.

클로저는 상태가 의도치 않게 변경되지 않도록 안전하게 은닉하고 특정함수에게만 상태변경을 허용하여 상태를 안전하게 변경하고 유지하기 위해 사용된다.

0개의 댓글