상세 컨텐츠

본문 제목

JavaScript - 클로저(closure)

개발/JavaScript

by 뉴에이스 2018. 12. 3. 14:37

본문

자바스크립트의 중요기술
- 스코프 체인(실행 컨텍스트를 지역->전역에서 찾아 씀), 프로토타입 체인, this, 클로저

클로저(closure)

- 함수내의 지역변수를 함수 외부에서 사용할 수 있게 하는 기술
- 생명주기가 종료된 함수의 변수를 참조할 수 있게 하는 기술

소스
function outer(val) {
	var msg = "당신의 메세지 : " + val;
	return function() {
		return msg;
	}; // 함수를 리턴 (콜백함수)
}

var fn = outer("하이~"); // out에서 반환한 함수를 받음

console.log(fn());

결과
당신의 메세지 : 하이~

소스
function nextID() {
	var id = 1;
	return function() {
		return id++;
	};
}

var id1 = nextID();
console.log(id1()); // 1
console.log(id1()); // 2

//함수가 생성될때마다 컨텍스트가 각각 생성됨 (new 처럼,,)
var id2 = nextID();
console.log(id2()); // 1
console.log(id2()); // 2

결과
1
2
1
2

관련글 더보기

댓글 영역