Lexical scoping

JY·2021년 3월 1일
0

🍯 Lexical scoping(어휘적 범위 지정)

어휘적 범위 지정(lexical scoping)에서 "lexical" 이란 변수가 어디에서 사용 가능한지 알기 위해 그 변수가 소스코드 내 어디에서 선언되었는지를 고려한다는 것을 의미한다.

코드 예시

function init() {
  var name = "Mozilla"      // name은 init에 의해 생성된 지역변수
  
  function displayName() {   // displayName() 은 내부 함수이며, 클로저다.
    alert(name);             // 부모 함수에서 선언된 변수를 사용
  }
  
  displayName();
}

init();      // "Mozilla"를 알림창으로 실행

displayName()함수가 부모함수인 init()함수의 지역변수 var name을 가져다 씀.
따라서 함수가 중첩된 상황에서 파서가 어떻게 변수를 처리하는지 알 수 있다.
중첩된 함수는 외부 범위(scope)에서 선언한 변수에도 접근할 수 있다.

0개의 댓글