Closure

hwa.haha·2024년 3월 28일
0

📌Closure란?

함수와 렉시컬 환경의 조합
함수가 생성될 당시의 외부 변수를 기억
생성 이후에도 계속 접근 가능


const x = 1;

function outFunc() {
	const x = 10;
  
  function innerFunc() {
    console.log(x); //10
  }
  innerFunc(); 
}

outFunc();

자바스크립트 엔진은 함수를 어디서 호출했는지가 아니라 함수를 어디에 정의했는지에 따라 상위스코프를 결정한다. 이를 렉시컬스코프라 한다.

외부 함수보다 중첩 함수가 더 오래 유지되는 경우 중첩 함수는 이미 생명주기가 종료한다 외부 함수의 변수를 참조 할수 있다. 이러한 중첩 함수를 클로저라고 부른다,

클로저는 상태를 안전하게 변경하고 유지하기 위해 사용된다. 다시말해 상태가 의도치않게 변경되지 않도록 상태를 안전하게 은닉하고 특정 함수에게만 상태 변경을 허용하기 위해 사용된다.

정의
활용한 구현경험
커링
고차함수

클로저 = scope

profile
개발자로 차근차근

0개의 댓글