클로저는 프로그래밍 언어에서 일반적으로 함수화 그 함수가 참조하는 외부 변수를 결합한 개념
클로저는 함수가 정의된 시점의 외부 변수에 대한 참조를 유지하고 이를 나중에 호출할 때 사용 가능
함수가 외부 스코프에서 선언된 변수를 계속 참조할 수 있다
클로저를 사용하는 사례
- 데이터 은닉 : 클로저를 사용하여 함수 외부에서 접근할 수 없는 비공개 변수를 만들 수 있다 이를 통해 변수를 캡슐화하고 외부에서 변경을 제한할 수 있다
function createCounter() {
let count = 0;
return function() {
count += 1;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
- 이벤트 핸들러 및 콜백 : 클로저를 사용하여 이벤트 핸들러나 콜백 함수에 상태를 유지할 수 있다
function handleClick(id) {
return function() {
console.log('Clicked element with id:', id);
};
}
const button1 = document.getElementById('button1');
const button2 = document.getElementById('button2');
button1.addEventListener('click', handleClick('button1'));
button2.addEventListener('click', handleClick('button2'));
'과거공부모음' 카테고리의 다른 글
HTTP와 HTTPS (0) | 2023.04.17 |
---|---|
call by value와 call by reference (0) | 2023.04.17 |
async/await (0) | 2023.04.17 |
프로미스(Promise) (0) | 2023.04.17 |
프로세스(Process)와 스레드(Thread) (0) | 2023.04.14 |