[javascript 정리]closure

Kyungoh Kang·2021년 1월 31일
0

javascript 정리

목록 보기
5/7

Closure

클로저 = 독립적인 변수를 가리키는 함수. 클로저 내에서 정의된 함수는
'정의됐을 때'의 환경을 기억한다. (MDN)

  1. 예시
function outer () {
	let a = 1;
  
  	return function inner() {
    	console.log(a)
    };
};

outer();

= 외부함수 outer에서 정의된 변수 a는 outer의 실행이 끝나도 메모리에서 삭제되지 않는데 이것은 outer가 inner 함수를 리턴하고 inner 함수에서 a를 참조하고 있기 때문에 a는 메모리상에서 가비지 컬렉팅의 대상이 되지 않는다.

= 즉 외부 함수에서 정의된 변수를 해당 함수의 실행이 끝난 후에도 반환된 내부 함수를 통해 변수를 메모리에 유지시킬 수 있게 된다.

  1. 활용
  • 정보 은닉
function person(name){
	let personName = this.name;
  
  	return function (personName) {
     	console.log(personName) 
    }
}
= 이렇게 클로저를 사용할 경우 personName에 외부 스코프에서 personName에 접근할 방
법이 없다.

0개의 댓글