상세 컨텐츠

본문 제목

[Javascript] 클로저(Closure)란?

IT/프로그래밍

by James Lee. 2019. 5. 9. 14:47

본문

클로저를 정의하는 말들은 여러가지가 있다. MDN에서는 아래와 같이 설명한다.

클로저는 독립적인 (자유) 변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 ‘기억한다’.

이게 무슨 말인가? 언뜻 봐서는 이해가 잘 가지 않는다.

클로저가 무엇인지 딱 한마디로 설명할 수 있기 위해 글을 정리한다.

무엇인가?

쉽게 말하면, 클로저는 함수 내부에 정의된 함수를 의미하며 조금 더 풀어서 설명하면

내부함수가 외부함수의 컨텍스트에 접근할 수 있는 것을 가르킨다.

  • 특징 : 외부함수가 소멸된 이후에도 내부함수가 소멸된 외부함수의 변수에 접근 할 수 있다.
    • 메모리에서는 여전히 기억하고 있기 때문에
  • 이런 메커니즘을 클로저라고 한다.
    • Closure라는 이름은 외부함수가 소멸된(Close) 이후에도 접근할 수 있는 것과 관계가 있었던 것으로 기억한다.

예시)

function outter(){
    var title = 'coding everybody';  
    return function(){        
        alert(title);
    }
}
inner = outter();
inner(); // coding everybdoy

참고 문서


관련글 더보기

댓글 영역