다음은 클로저의 대표적 예인 카운터다[1].
counter 함수를 호출할 때, counterClosure 컨텍스트[2]에 count와 changeCount가 담긴 스코프 체인[3]이 생성된다. 그러므로 counterClosure에서 count로의 접근이 가능해지게 된다. 이런 식으로 비공개 변수를 만들어 활용할 수 있다.
위 코드[4]도 마찬가지로 클로저를 활용한 예제다. 단, 함수 호출할 때마다 해당 함수에 대한 실행 컨텍스트가 생성된다. 따라서 counter1과 counter2는 서로 독립적이다.
-----
1. 다음 글에서 코드를 발췌했다.
2. 실행 컨텍스트란 코드 흐름이나 함수 동작에 필요한 환경 정보가 담긴 객체를 지칭한다.
3. 스코프 체인은 해당 코드의 유효 범위 안에 있는 변수를 정의하는 객체의 체인, 리스트다. 함수 선언 시 스코프 체인은 Lexical Scoping을 따른다.
4. 다음 글에서 코드를 발췌했다.
'공부 > JavaScript' 카테고리의 다른 글
객체 병합 (0) | 2023.04.11 |
---|---|
배열의 특성 (0) | 2023.03.18 |
this 관련 몇 가지 예제 (0) | 2023.03.15 |
실행 컨텍스트 관련 예제 (0) | 2023.03.15 |
중복 제거 후 병합 (0) | 2023.03.13 |
댓글