클로저

jaeho95·2022년 1월 30일

1. 클로저 (Closuer)

함수가 선언되었을 당시 주변 환경을 기억하는 것이다.

var x = 1;

function foo() {
	var x = 10; 
  	bar();
}

function bar() {
	console.log(x);
}

foo();

bar 함수가 실행되는 위치나 시점은 foo 함수 내부에서 foo 함수가 호출될 때 실행된다. 하지만 함수가 선언되었을 당시에 스코프가 형성되기 때문에 bar 함수의 상위 스코프는 전역 객체가 된다. 따라서 bar
함수 내부의 x 값은 스코프 체인에 따라 상위 스코프에서 찾게 되고 1을 출력하게 된다.

📌 스코프 체인이란 해당 코드의 유효 범위 안에 있는 변수를 정의하는 객체의 리스트이다.
자바스크립트에서 변수값을 찾으려고 할 때 스코프 체인에서 변수를 찾게 된다.

2. 실행 컨텍스트 (Execution Context)

함수가 실행될 때마다 현재 실행되는 함수에 대한 정보를 모아놓은 객체이다.

0개의 댓글