Coding/JavaScript

[JavaScript] 클로저

호밀이 2022. 5. 13. 09:08

클로저란?

  • 외부 함수의 변수에 접근 할 수 있는 내부 함수
  • JavaScript MDN: 클로저는 함수와 함수가 선언된 어휘적 환경의 조합, 클로저를 이해하려면 자바스크립트가 어떻게 변수의 유효범위를 지정하는지(Lexical scoping)를 먼저 이해해야 한다
  • 어휘적 환경의 조합이라는 것이 낯설게 느껴진다. 하지만, 앞서 작성한 스코프에 대해서 이해를 하고 온다면 유효범위가 지역범위라는 것을 알 수 있다.

 

외부함수, 내부함수(클로저)

  • 외부 함수 안에 있는 함수가 내부함수이며, 클로저라고 불린다.
  • 외부함수는 내부함수의 변수를 사용하지 못한다.
  • 내부함수는 외부함수의 변수를 사용할 수 있다.
  • 내부함수는 여러개를 작성할 수 있다.
function init() {
      let name = "minwoo";     // name은 init에 의해 생성된 지역 변수이다.
      function displayName() {    // displayName() 은 내부 함수이며, 클로저다.
        console.log(name);     // 부모 함수에서 선언된 변수를 사용한다.
      }
      displayName();
    }

init();

 

참고자료

'Coding > JavaScript' 카테고리의 다른 글

[JavaScript] Local Storage  (0) 2022.05.22
[JavaScript] 스코프  (0) 2022.05.12
[JavaScript] 객체  (0) 2022.05.10
[JavaScript] 배열  (0) 2022.05.10
[JavaScript] 반복문(for, while)  (0) 2022.04.28