망각에 재주 있는 나를 위해 기록하는 곳.

렉시컬 스코프(lexical scope) 본문

Javascript

렉시컬 스코프(lexical scope)

baobabtree 2023. 3. 30. 20:55

렉시컬 스코프(Lexical Scope)

부모 함수 안에 정의된 내부 함수는 해당 외부 함수의 범위나 범위 내에 정의된 변수에 접근 할 수 있다는 것.

 

function outer() {
  const outerVar = 'outer';

  function inner() {
    const innerVar = 'inner';
    console.log(outerVar);
  }
  inner();
}
outer();
---------------------------------------
>> outer

위 처럼 inner() 함수에서 outerVar 변수에 접근할 수 있다. 이는 렉시컬 스코프 때문인데 outer 함수의 스코프에 선언된 outerVar 변수는 inner() 함수에서 접근 가능한 변수이다.

 

별개로 동적 스코프(dynamic scope)라는 것도 알게 되었는데 Lisp나 Perl같은 언어에서 사용하는 듯하다.

자바스크립트에서는 렉시컬 스코프를 채택하고 있다고 한다.