간단히 말하면, 함수 내부에서 선언한 변수나 함수를 외부에서 참조할 때, 해당 변수나 함수를 클로저라고 합니다. 클로저는 함수 내부에서 생성된 변수를 계속해서 참조할 수 있는 특성을 가지고 있습니다. 다시 말해, 클로저는 내부 함수가 외부 함수의 변수에 접근할 수 있는 환경을 의미합니다.
클로저는 다음과 같은 특징을 가집니다.
함수 내부에서 선언한 변수를 외부에서 참조할 수 있습니다.
- 클로저를 반환하는 함수를 생성할 수 있습니다.
- 클로저를 사용하면 함수의 실행 컨텍스트가 종료되어도 함수 내부의 변수를 계속해서 참조할 수 있습니다.
- 데이터 은닉 : 클로저를 사용하면, 변수를 외부에서 직접 접근하는 것을 막고 함수를 통해서만 접근하게 할 수 있습니다. 이는 함수 내부의 변수를 안전하게 보호하면서도, 외부에서 변수를 참조할 수 있도록 해줍니다.
클로저 예시)
function createCounter() {
let count = 0;
return function() {
count++;
return count;
}
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3
위의 예시에서 createCounter 함수는 내부 함수를 반환합니다. 이 내부 함수는 count 변수에 접근할 수 있지만, 외부에서 직접 접근할 수 없습니다. 따라서 클로저를 사용하여 데이터 은닉과 상태 유지를 구현할 수 있습니다.
'개발기초' 카테고리의 다른 글
테스트 (Testing)에 대해서 (0) | 2023.04.21 |
---|---|
모듈 (Module)이란?, Node.js에서 모듈을 사용하는 방법? (0) | 2023.04.21 |
[자바스크립트] 프로미스 (Promise)와 async/await에 대해서 (1) | 2023.04.20 |
개발 방법론 (Development Methodology)에 대해서 (0) | 2023.04.19 |
데이터베이스와 ORM (0) | 2023.04.18 |
댓글