JS/Javascript

[함수] 클로저 함수 (Closure Function)

ui-o 2023. 2. 25. 17:08
반응형

◎ 클로저 함수

: 함수가 종료되어도 함수 내부에 만든 지역변수가 사라지지 않고, 계속 값을 유지하는 상태를 클로저라고 하며,
  내부에 있는 함수를 클로져 함수라고 함

  - 연관있는 변수와 기능(중첩함수)을 하나의 함수로 묶어 독립적으로 실행 가능
  - 함수 내부에 데이터가 만들어지기 떄문에 함수 외부에서 수정할 수 없는 보호된 데이터를 만들 수 있음
  - 객체지향 프로그래밍에서는 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