본문 바로가기

import
{ [Javascript] 클로저(Closure) 란? }
from" ../hr-devlog"

const { Frontend } = useHrDevlog( );

클로저(Closure)

  1. 함수를 지칭하면서, 함수가 생성됐을때의 렉시컬 환경의 조합
  2. 자신이 선언됐을때의 환경을 기억한다
  3. 즉 함수안에 내부함수가 외부함수의 변수를 사용했을때 그 환경을 기억하고 있는것
// 이해를 위해 코드로 확인해보기
function outerFunc() {
	let name = 'hr';
	return function closureFunc(type) { 
		return name = `${name}${type}`;
	}
}

let tistory = outerFunc();

console.log(tistory('-devlog')); // hr-devlog

 

  • outFunc()는 closureFunc를 return함으로써 소명을 다하고 종료됐지만 당시에 선언되었던 name 변수를 closureFunc로 접근가능 이를 클로저의 특징으로 볼 수 있다
  • closureFunc가 선언될때 렉시컬 스코프에 의해 상위 스코프 outerFunc 를 참조