JS Closure

Yeeeeeun_IT·2022년 8월 26일
0

스코프란?

스코프란(scope) 식별자의 유효범위를 말한다.
var, let, const로 선언한 변수의 스코프는 다르게 동작한다!
함수의 매개변수는 함수 몸체 내부에서만 참조할 수 있고 그 밖에서는 참조할 수 없다.

스코프는 전역 스코프와 지역 스코프로 나눌 수 있다.
전역이란 코드의 가장 바깥 영역을 말하며,
전역에서 선언된 변수는 전역스코프를 갖게되며 전역 변수는 어디서든 참조가 가능하다.
반면, 지역이란 함수 내부를 말하며 지역에서 선언된 변수는 지역스코프를 갖게 되는 것이다. 즉 자신이 선언된 지역과 그 하위 지역 스코프에서만 유효하다.

Lexical Scope (정적 스코프)

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

Closure

클로저는 함수와 함수가 선언된 어휘적 환경의 조합이다.
클로저는 함수를 일급객체로 취급하는 함수형 프로그래밍언어에서 사용되는 중요한 특성이다.
즉 중첩함수 내부에서 자신을 포함하고있는 외부함수의 변수에 접근할 수 있는 것을 말한다.
(중첩함수 클로저 : 외부함수보다 중첩함수가 더 오래 유지되는 경우 중첩함수는 이미 생명주기가 종료한 외부함수의 변수를 참조할 수 있다.)

클로저 스코프 체인

모든 클로저에는 세가지 스코프(범위)가 있다:

  • 지역 범위 (Local Scope, Own scope)
  • 외부 함수 범위 (Outer Functions Scope)
  • 전역 범위 (Global Scope)

참조 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Closures

profile
🍎 The journey is the reward.

0개의 댓글