클로저

jake·2021년 9월 7일
0

JavaScript문법

목록 보기
21/21
post-thumbnail
  1. 전역변수로 생성하면 중간에 값이 바뀔 때 보호할 수 없다.
  2. 값이 변경 되는것을 방지하기위해 함수안쪽 지역변수로 생성해보자. 계속 1이 리턴된다. (지역변수는 한번리턴되면 사라진다.)
  3. 계속 1로 리턴 되는 것을 해결하기 위해 increment함수를 함수로 리턴해준다.
    그리고 inc 상수 변수에 increment함수를 넣어준다. 즉, inc에는 리턴된 함수가 들어간 것이다.

    icrement함수를 리턴할때 savsNumber는 사라지지만 클로저 공간에 남아있다. 때문에 inc함수에서 savsNumber를 리턴 할 수 있는 것이다. 첫번째 값을 콘솔 찍으면 1이나오고 2번째 값을 콘솔 찍으면 2가나오는데 savsNumber가 +1 증가된 값이 클로저에 들어가기 때문이다.
  4. 클로저를 사용하면 장점
  • 특정값을 보호하면서 그 값을 계속사용할 수 있다.
  • 변수를 보호 했기 때문에 바깥쪽에서 접근할 길이 없다. 코드상에서 접근 불가능.
  • 보호되어야 하는 값이 필요하면 클로저 공간에 넣는다.

<타입 스크립트는 보호할 변수 앞에 private를 붙여주면 끝나지만 자바스크립에는이런 스펙이 없으니까>..

profile
열린 마음의 개발자가 되려합니다

0개의 댓글