반응형
◎ 클로저 함수
: 함수가 종료되어도 함수 내부에 만든 지역변수가 사라지지 않고, 계속 값을 유지하는 상태를 클로저라고 하며,
내부에 있는 함수를 클로져 함수라고 함
- 연관있는 변수와 기능(중첩함수)을 하나의 함수로 묶어 독립적으로 실행 가능
- 함수 내부에 데이터가 만들어지기 떄문에 함수 외부에서 수정할 수 없는 보호된 데이터를 만들 수 있음
- 객체지향 프로그래밍에서는 private data, 캡슐화된 data라고 칭함
* 기본 문법
function name(callback){
로직구현
callback(결과) // 로직 처리 부분을 다른 함수에 넘겨줌
}
• Sources
function createCounter() {
let cnt = 0; // 지연 변수 선언 후
// add()가 클로저 함수가 됨
function add() {
cnt++; // 외부함수 이용하고 있으나 호춛된 값이 남아있어 cnt값이 1씩 증가함 (클로저 현상)
return cnt;
}z
return add;
}
let counter = createCounter(); // 함수리터럴
document.write(`${counter()} <br>`); // 1
document.write(`${counter()}<br>`); // 2
반응형
'JS > Javascript' 카테고리의 다른 글
[Javascript] 객체 (0) | 2023.11.02 |
---|---|
[javascript] 구조 분해 할당, 배열 구조 분해 (0) | 2023.10.19 |
[함수] 중첩함수 (0) | 2023.02.25 |
[Javascript] 화살표 함수(Arrow Function) (0) | 2023.02.25 |
[함수] 콜백(callback) 함수 (0) | 2023.02.25 |