본문 바로가기

JavaScript/기초

[JavaScript] 클로저란?

클로저란?

내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다. (생활코딩)

클로저는 함수가 선언된 환경의 (렉시컬) 스코프를 기억하여 함수가 스코프 밖에서 실행될 때에도 이 스코프에 접근할 수 있게 하는 기술

쉽게말해서 외부함수가 소멸된 이후에도 외부함수의 상태를 유지해 변수에 접근하거나 사용 할 수 있다.

  1. 스코프(Scope)

    1. 종류 : 전역 스코프(Global Scope), 지역 스코프(local scope)

    2. 쉽게말해서 전역변수와 지역변수

  2. 클로저(Closures)

    1. 함수 내부에 함수를 작성할 때마다, 클로저를 생성한 것

    2. 목적 : 사이드 이펙트(side effects) 제어, private 변수 생성

    3. 특징

      1. inner 함수는 outer 함수의 지역 변수 참고 가능

      2. outer 함수가 실행되어 소멸되어도 inner 함수는 outer 함수의 지역변수 참고 가능

      3. private 변수 선언 가능

![](https://i.imgur.com/PuOsFtc.png)

크롬 디버깅을 통해 스코프를 확인 할 수 있다.

'JavaScript > 기초' 카테고리의 다른 글

[JavaScript] 실행컨텍스트  (0) 2019.12.30
[JavaScript] JavaScript의 구조  (0) 2019.11.26