[클로저]

Sehyeon Park·2022년 5월 13일
0

자바스크립트의 (다른 컴퓨터 언어와) 다른 특성

클로저 개념

MDN 클로저 개념

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

자바스크립트는 함수가 호출되는 환경과 별개로, 기존에 선언되어있더 환경, 어휘적 환경 을 기준으로 변수를 조회하려고 한다.

"외부 함수의 변수에 접근할 수 있는 내부 함수" 를 클로저 함수로 부르는 이유이다.

클로저 함수의 특징

화살표 함수를 이용한 간단한 덧셈 함수

const add = (x,y) => x + y;
add(5,7); // 12

함수의 호출이 두 번 발생

const adder = x => y => x + y;
adder(5)(7) ; // 12

함수를 리턴하는 함수

리턴값이 함수

const adder = x => y => x + y;
adder(5)(7); //12
typeof adder(5) // 'function'
adder(5) // y=> x+y;

클로저 함수는 위와 비슷한 모양을 갖고 있습니다. 이를 통해 알아볼 수 있는 첫 번째 특징은, 클로저 함수는 "함수를 리턴하는 함수" 라는 점입니다. 함수를 리턴하는 함수가 클로저의 형태를 만듭니다.

클로저 함수의 특징

1. 데이터를 보존하는 함수


어휘적 환경을 메모리에 저장하기 때문에 가능한 일입니다

이렇게 사용가능!

실용적인 예제! : HTML 문자열 생성기

2. 정보의 접근 제한

3.모듈화

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

클로저를 통해 데이터와 메서드를 같이 묶어서 다룰 수 있습니다. 즉, 클로저는 모듈화에 유리합니다.

profile
후회하지 않는 개발자가 되자!

0개의 댓글