클로저를 정의하는 말들은 여러가지가 있다. MDN에서는 아래와 같이 설명한다.
클로저는 독립적인 (자유) 변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 ‘기억한다’.
이게 무슨 말인가? 언뜻 봐서는 이해가 잘 가지 않는다.
클로저가 무엇인지 딱 한마디로 설명할 수 있기 위해 글을 정리한다.
무엇인가?
쉽게 말하면, 클로저는 함수 내부에 정의된 함수를 의미하며 조금 더 풀어서 설명하면
내부함수가 외부함수의 컨텍스트에 접근할 수 있는 것을 가르킨다.
- 특징 : 외부함수가 소멸된 이후에도 내부함수가 소멸된 외부함수의 변수에 접근 할 수 있다.
- 메모리에서는 여전히 기억하고 있기 때문에
- 이런 메커니즘을 클로저라고 한다.
- Closure라는 이름은 외부함수가 소멸된(Close) 이후에도 접근할 수 있는 것과 관계가 있었던 것으로 기억한다.
예시)
function outter(){
var title = 'coding everybody';
return function(){
alert(title);
}
}
inner = outter();
inner(); // coding everybdoy
참고 문서
댓글 영역