JS Deep Dive 클로저 2

제론·2022년 6월 16일
0

[JS 공부기록] TIL ✨

목록 보기
8/12

클로저의 활용

상태를 안전하게 은닉하고 특정 함수에게만 상태 변경을 허용해줌

  • 즉시실행함수를 이용 해서 함수를 반환
  • 즉시실행함수 안에서 변수 생성시 전역X -> 변수의 의도치 않은 변경이 발생하지 않음
  • 즉시실행함수의 내부함수는 즉시실행함수의 실행컨텍스트의 렉시컬 환경을 기억하는 클로저X
  • 외부의 예기치 못한 상태 변경을 피하기 위해 함수형 프로그래밍에서 적극적으로 사용됨
  • cf) 고차함수: 보조 함수를 인자로 전달받고 함수를 반환하는 함수

유의사항

  • 클로저를 만드는 함수를 두 번 생성할 경우 할당된 함수는 각각 자신의 독립된 렉시컬 환경이 만들어지기 때문에 자유변수 연동이 되지 않는다.

캡슐화

  • 프로퍼티와 메서드를 묶는 것
  • 목적 -> 특정 프로퍼티와 메서드를 은닉

주의사항

  • let이나 const를 사용하는 반복문에서는 반복시마다 새로운 렉시컬환경을 생성함
  • 독립적인 렉시컬 환경이 만들어지므로 식별자의 값이 유지됨
  • 그러나 반복문 안에 함수가 없을시 아무도 참조하지 않기 때문에 GG 대상이됨
profile
Software Developer

0개의 댓글