[자바스크립트] 클로저

박지원·2023년 3월 30일
0

1차 스터디

목록 보기
12/13

▷ 클로저 의미

클로저는 함수형 프로그래밍 언어에서 사용되는 특성이다.

클로저를 이해하기 위한 핵심 키워드는 함수가 선언된 렉시컬 환경이다.


▷ 함수 객체의 내부 슬롯

함수는 상위 스코프를 정할 때 렉시컬 스코프 방식을 따른다.

함수가 실행 될 때 함수의 상위 스코프가 결정되고,

생성된 함수 객체는 결정된 상위 스코프의 참조값을 같이 저장한다.

그래서 함수는 호출 될 때 마다 미리 저장된 상위 스코프를 참조하여 함수를 실행한다.

자 여기서 생성된 함수 객체가 상위 스코프 참조를 저장한다고 했는데,

그 저장되는 곳을 내부 슬롯 [[Environment]] 이라고 한다.


▷ 장점

클로저는 변수를 변경하고 유지하는 부분에 있어서 안정성을 보장한다.

변화를 주고싶은 변수가 있을때 중첩 함수를 별도로 정의하여 얘한테만 수정 권한을 부여하는 방식이다.


▷ 캡슐화와 정보 은닉

캡슐화는 객체의 프러퍼티와 프러퍼티를 참조하는 변수로 동작하는 메서드를 하나로 묶는 것을 뜻한다.

또한 객체의 특정 프러퍼티나 메서드를 감추기 위한 목적으로 사용하기도하며, 이를 정보 은닉이라고 한다.

정보 은닉이 필요한 이유는

자바스크립트에서 객체의 프러퍼티나 메서드는 객체 외부에서 접근이 가능하기 때문에,

실수로 객체에 잘못 접근하여 객체의 상태가 변경되는 사고를 방지하기 위함 + 객체간 의존성을 낮추기 위해서 필요하다.

근데 정보 은닉이 완전하기 지원되지는 않아서 보통은 클래스의 private필드를 정의하여 사용한다.

profile
NodeJS 백엔드

0개의 댓글