클로저 함수 및 문법들

JS2L·2023년 1월 6일
0

클로저 함수는 "함수를 리턴하는 함수" 함수를 리턴하는 함수가 클로저의 형태를 만듭니다.

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

클로저 함수의 두 번째 특징은 "내부 함수는 외부 함수에 선언된 변수에 접근 가능하다"

클로저는 외부 함수의 실행이 끝나더라도, 외부 함수 내 변수가 메모리 상에 저장됩니다.

클로저는 특정 데이터를 스코프 안에 가두어 둔 채로 계속 사용할 수 있게 해줍니다.

클로저를 이용해 내부 함수를 단 하나만 리턴하는 것에 그치지 않고, 객체에 담아 여러 개의 내부 함수를 리턴하도록 만듭니다.

리턴하는 객체가 제공하는 메서드를 통해 외부 스코프 값을 간접적으로 조작할 수 있는데 이것이 바로 정보의 접근 제한 (캡슐화) 입니다.

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

spread 문법

주로 배열을 풀어서 인자로 전달하거나, 배열을 풀어서 각각의 요소로 넣을 때에 사용합니다.
spread 문법은 기존 배열을 변경하지 않으므로 배열의 값을 바꾸려면 새롭게 할당해야 합니다.
같은 키가 스프레드 문법으로 한곳에 입력될 경우 후자의 값으로 덮어씌워진다.
"한마디로 모든 배열의 요소를 펼쳐서 전달한다." 하나의 값을 여러 개의 요소로 펼친 것

rest 문법

파라미터를 배열의 형태로 받아서 사용할 수 있습니다. 파라미터 개수가 가변적일 때 유용합니다.

profile
신입 개발자의 독고다이 개발일지

0개의 댓글