TIL 11. Java Script 클래스, 클로저

yeah·2023년 5월 30일
0

Today I Learned

목록 보기
11/70
post-thumbnail
post-custom-banner

Mission. 클래스, 클로저를 활용하는 능력 갖추기

1) 목적

  1. Class 문법의 주요 개념을 이해하고 활용하기 위해서
  2. 로직을 안전하게 변경하고 유지하기 위해서

2) 방법

  1. 클래스, 인스턴스, getter, setter, 상속, static method 등 학습하기
  2. 렉시컬 스코프에 대해 이해하고 increase 함수 학습하기
  3. 예제를 통해 기초 다지기

3) 봉착한 문제

  1. 카운트 상태(num 변수의 값)는 increase 함수만이 변경할 수 있게 하기
let num = 0;
    const increase = function () {
    return ++num;
};
console.log(increase());
// num = 100; // 치명적인 단점이 있어요.
console.log(increase());
console.log(increase());

4) 시도

  1. num을 지역변수로 바꾸기
const increase = function () {
  let num = 0;
  return ++num;
};
console.log(increase());
console.log(increase());
console.log(increase());

1-1. 리뷰

  • 카운트 상태는 increase 함수만이 변경할 수 있게 했다.
  • increase()가 호출될 때마다 num이 초기화 된다.
  1. 클로저 사용하기
const increase = (function () {
  let num = 0;
  return function () {
    return ++num;
  };
})();
console.log(increase());
console.log(increase());
console.log(increase());

2-1. 리뷰

  • 즉시 실행 함수가 반환한 클로저는 카운트 상태를 유지하기 위한 자유 변수 num을 언제 어디서 호출하든지 참조하고 변경할 수 있다.

5) 알게된 점

  1. 클로저는 상태가 의도치 않게 변경되지 않도록 안전하게 은닉하고 특정 함수에게만 상태 변경을 허용하여 안전하게 변경하고 유지하기 위해 사용된다는 것을 알게 되었다.
profile
기록과 회고
post-custom-banner

0개의 댓글