함수와 함수가 선언된 어휘적(lexical) 환경의 조합을 말한다. 이 환경은 클로저가 생성된 시점의 유효 범위 내에 있는 모든 지역 변수로 구성된다
"함수가 선언"된 어휘적(lexical) 환경??
외부함수의 변수에 접근할 수 있는 내부함수
??????
머릿속에 잘 들어오지 않지만 일단 정리해봅니다

그림의 adder(5) 자체로 함수
이를 풀어서 쓰면

클로저 함수는 위와 비슷한 모양을 갖는다
함수를 리턴하는 함수

리턴하는 함수에 의해 스코프(변수의 접근 범위) 구분

외부 함수는 내부 변수 y에 접근 불가능
내부 함수는 외부 변수 x에 접근 가능

이건 뭐하러 만들었나 싶지만...

전달받은 인자를 저장해두고
그 인자를 비슷한 방법으로 계속 사용하는
함수를 만들어낸다

리턴하는 것이 함수(메소드)가 여러 개인 객체

내부 변수 값을 직접 수정할 수 없다
리턴하는 객체의 함수(메소드)를 이용해 간접적으로 수정 가능
- 불필요한 전역 변수를 없애고
- 값을 보다 안전하게 다룬다
재활용 가능

리턴된 객체는 변수를 각자 독립적으로 가진다
함수 하나를 완전히 독립적인 부품 형태로 분리 = 모듈화
클로저로 데이터와 메소드를 같이 묶어서 다룰 수 있다=> 모듈화에 유리하다
그림 출처 : codestates