클로저
클로저(Closure)
내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것
1. 클로저와 내부함수
자바스크립트는 함수 안에서 또 다른 함수를 선언할 수 있음
function outter(){ //외부함수
function inner(){ //내부함수
var title = 'coding everybody';
alert(title);
}
inner();
}
outter(); //coding everybody
//내부함수 inner에서 title을 호출했을때,
//외부함수 outter의 지역변수에 접근가능함을 보여줌2. 클로저의 특성
클로저(closure)는 내부함수와 밀접한 관계를 가지고 있음
내부함수는 외부함수의 지역변수에 접근 할 수 있음
3. 프라이빗 변수(private variable)
어떠한 정보를 아무나 수정하지 못하도록 방지하는 변수 (객체의 외부에서는 접근 할 수 없는 외부에 감춰진 속성이나 메소드를 의미)
Private 속성을 통해 객체의 내부에서만 사용해야 하는 값이 노출됨으로서 생길 수 있는 오류를 줄일 수 있음
클로저는 객체의 메소드에서도 사용 가능
동일한 외부함수 안에서 만들어진 내부함수나 메소드(get_title / set_title)는 외부함수의 지역변수(title)를 공유
JavaScript는 기본적으로 Private한 속성을 지원하지 않는데, 클로저의 이러한 특성으로 Private한 속성을 사용할 수 있음
4. 클로저의 응용
클로저 참고
Last updated
Was this helpful?