-
[Javascript] 클로저란개발/JavaScript 2022. 6. 25. 18:08
클로저란
외부 함수에 접근할 수 있는 내부 함수 혹은 이러한 원리를 일컫는 용어인데 스코프에 따라서 내부함수의 범위에서는 외부 함수 범위에 있는 변수에 접근이 가능하지만 그 반대는 실현이 불가능하다는 개념 입니다.
특징으로는 외부함수는 외부함수의 지역변수를 사용하는 내부함수가 소멸될 때까지 소멸되지 않습니다. 예를 들어 한 함수안에 다른 함수가 있다면 그 안의 함수는 바깥에 정의해놓은 변수를 사용할 수 있지만 그 반대는 가능하지 않습니다.function makeFunc() { var name = "Mozilla"; function displayName() { alert(name); } return displayName; } var myFunc = makeFunc(); //myFunc변수에 displayName을 리턴함 //유효범위의 어휘적 환경을 유지 myFunc(); //리턴된 displayName 함수를 실행(name 변수에 접근)
클로저의 장점
- 데이터를 보존할 수 있다.
- 클로저 함수는 외부 함수의 실행이 끝나더라도 외부 함수 내 변수를 사용할 수 있다.
- 클로저는 이처럼 특정 데이터를 스코프 안에 가두어 둔 채로 계속 사용할 수 있게하는 폐쇄성을 갖는다.
- 정보의 접근 제한 (캡슐화)
- 클로저 모듈 패턴’을 사용해 객체에 담아 여러 개의 함수를 리턴하도록 만든다.
- 이러한 정보의 접근을 제한하는 것을 캡슐화라고 한다.
- 모듈화에 유리하다.
- 클로저 함수를 각각의 변수에 할당하면 각자 독립적으로 값을 사용하고 보존할 수 있다.
- 이와 같이 함수의 재사용성을 극대화 함수 하나를 독립적인 부품의 형태로 분리하는 것을 모듈화라고한다.
- 클로저를 통해 데이터와 메소드를 묶어다닐 수 있기에 클로저는 모듈화에 유리하다.
참고자료
'개발 > JavaScript' 카테고리의 다른 글
[JavaScript] RegExp 객체 (0) 2022.08.15 [JavaScript] 정규표현식 모음 (0) 2022.08.05 [JavaScript] 접근자 프로퍼티 (0) 2022.07.14 [JavaScript] 메서드 체이닝 (0) 2022.07.01 [JavaScript] 논리 연산자 (0) 2022.05.09 - 데이터를 보존할 수 있다.