클로저 함수

Siwoo Pak·2021년 5월 28일
0

Javascript

목록 보기
20/34

클로저 함수의 정의와 특징

  • 정의: 함수와 함수가 선언된 어휘적(lexical) 환경의 조합.

  • 이 환경은 클로저가 생성 된 시점의 유효 범위 내에 있는 모든 지역 변수로 구성.- - lexical: lexical scoping 과정에서 변수가 어디에서 사용 가능한지 알기 위해
    그 변수가 소스코드 내 어디에서 선언되었는지 고려한다는 것을 의미.

  • 중첩된 함수는 외부범위에서 선언한 변수에도 접근할 수 있다

  • 변수에 클로저 함수를 할당한 경우

  • 클로저 함수의 호출

  • 클로저를 이용, 프라이빗 메소드 구현

  • 단점:

    • 일반 함수였다면 함수 실행 종료 후 가비지 컬렉션(참고 자료: MDN '자바스크립트의 메모리 관리') 대상이 되었을 객체가, 클로저 패턴에서는 메모리 상에 남아 있게 됩니다.
    • 외부 함수 스코프가 내부함수에 의해 언제든지 참조될 수 있기 때문입니다. 따라서 클로저를 남발할 경우 퍼포먼스 저하가 발생할 수도 있습니다.
    • 자바스크립트는 가비지 컬렉션을 통해 메모리 관리를 합니다. 객체가 참조 대상이 아닐 때, 가비지 컬렉션에 의해 자동으로 메모리 할당이 해제됩니다.
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글