클로저 D2

nearworld·2023년 1월 9일
0

javascript

목록 보기
6/7

1부에서 이야기한 렉시컬 환경에 대해 오늘 공부한 내용을 공유하는 차원에서 이 글을 쓴다..

프로그래밍 언어에서 스코프를 결정하는 방식은 2가지다.

  1. 동적 스코프: 함수가 호출된 환경에 따라 상위 스코프 결정
  2. 정적 스코프 (렉시컬 스코프): 함수가 선언된 환경에 따라 상위 스코프 결정
let a = 10;

function foo() {
  let a = 10;
  bar()
}

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

foo();
bar();

렉시컬 환경은 자바스크립트가 렉시컬 스코프 방식으로 작동하는 언어이기 때문에 가능하다.

function HigherOrderFunction() {
  let a = 10;
  return function (x) { // 함수가 선언된 환경에 따라 상위 스코프 결정!
    return a + x;
  }
}

const closure = HigherOrderFunction();
console.log(closure(10)); // 20
profile
깃허브: https://github.com/nearworld

0개의 댓글