TIL) JavaScript 클로저

omegle·2022년 9월 6일
0

JavaScript

목록 보기
4/8
post-thumbnail

클로저

"함수와 함수가 선언된 어휘적(lexical) 환경의 조합을 말한다. 이 환경은 클로저가 생성된 시점의 유효 범위 내에 있는 모든 지역 변수로 구성된다."

어휘적 환경(lexical environment)이란?
= 변수 및 함수 선언의 형태

클로저를 통해 불필요한 전역 변수 사용을 줄이고, 스코프를 이용해 값을 보다 안전하게 다룰 수 있습니다

클로저 함수

  • 외부 함수의 변수에 접근할 수 있는 내부 함수
클로저 함수의 특징
  1. 함수를 리턴하는 함수이다.

  2. 클로저는 리턴하는 함수에 의해 스코프가 구분된다. 클로저의 핵심은 스코프를 이용해서, 변수의 접근 범위를 닫는 데에 있다. 따라서, 함수를 리턴하는 것만큼이나, 변수가 선언된 곳이 중요하다.

    즉, 내부 함수는 외부 함수에 선언된 변수에 접근이 가능하다.

  3. 데이터를 보존하는 함수이다.
    외부 함수의 실행이 끝나더라도, 외부 함수 내 변수가 메모리 상에 저장이 되기 때문에, 외부 함수 내 변수를 사용할 수 있다.
    (어휘적 환경을 메모리에 저장하기 때문에 가능하다
    즉, 특정 데이터를 스코프 안에 가두어 둔 채로 계속 사용가능하다!

정보의 접근 제한

클로저 함수에서 '외부 스코프에서는 내부 스코프의 변수에 접근할 수 없다'라는 규칙에 의해, 내부 함수의 변수를 수정하고 싶어도 수정할 수 없다. 대신, 리턴하는 객체가 제공하는 메서드를 통해 내부 함수의 변수 값을 간접적으로 조작할 수 있다.

이것이 정보의 접근 제한 (캡슐화) 이다!

모듈화
함수 재사용성을 극대화하여, 함수 하나를 완전히 독립적인 부품 형태로 분리하는 것이다.

profile
JANG EUN JI | 장은지

0개의 댓글