클로저 (Closure)

kimjaewon·2023년 4월 24일
0

클로저 (Closure)의 개념

클로저는 자바스크립트에서 중요한 개념 중 하나로 외부함수(포함하고 있는)변수에 접근할 수 있는 내부 함수 를 일컫는다 클로저는 3가지의 스코프 체인을 가지는데
클로저 자신에 대한 접근(자신의 블럭내에 정의된 변수), 외부함수의 변수에 대한 접근 , 전역 변수에 대한 접근 3단계로 구분할 수 있다

내부 함수는 외부 함수의 변수뿐만 아니라 파라미터에도 접근이 가능한데 단 내부 함수는 외부 함수의 arguments 객체를 호출할 수는 없다 (외부 함수의 파라미터는 직접 호출이 가능)

함수와 함수가 선언 되었을때 렉시컬 환경정보를 묶어서 하나의 단위로 만들어 준다 (클로저는 선언 되었던 이전 상태를 기억함)
이렇게 묶인 클로저는 함수 내부에서 선언한 변수와 그 값들을 계속 유지하면서 사용할 수 있다

외부 함수 호출이 종료된 후에도 함수 내부 변수에 대한 메모리 할당을 유지하지만 직접 볼 수 없게 은닉화 한다

클로저 스코프 체인

● 지역 범위 (Local Scope, Own scope)

● 외부 함수 범위 (Outer Functions Scope)

● 전역 범위 (Global Scope)

https://velog.io/@zlfmaodtod77/%EC%8A%A4%EC%BD%94%ED%94%84Scope
(스코프의 대해)

클로저의 단점

● 메모리를 소모한다

● Scope 생성에 따른 퍼포먼스 손해가 있다

편리함 클로저라도 단점이 있는 만능이 아니기 때문에 항상 사용하기 보다는 정말 필요할때 구현에 있어서 급진적으로 개발이 편해질 때 사용하면 좋을 거 같다

profile
올라가자

0개의 댓글