객체 지향(클로저 모듈 패턴)

신창용·2022년 11월 18일
0

메서드 호출

  • 메서드 호출은 객체.메서드()과 같이 객체 내에 메서드를 호출하는 방법을 의미한다.
  • 메서드 호출 방식을 이용할 떄에는 화살표 함수를 쓰지 않는다.
let counter1 = {
  value: 0,
  increase: function() {
    this.value++ // 메서드 호출을 할 경우, this는 counter1을 가리킵니다
  },
  decrease: function() {
    this.value--
  },
  getValue: function() {
    return this.value
  }
}

counter1.increase()
counter1.increase()
counter1.increase()
counter1.decrease()
counter1.getValue() // 2

counter 예시

클로저를 이용해 매번 새로운 객체 생성하기

  • 위의 counter1은 단 하나의 객체만 만들 수 있다.
  • 같은 기능을 하는 카운터가 여러 개가 필요하다면, 클로저 모듈 패턴을 이용할 수 있다.
function makeCounter() {
  let value = 0;
  return {
    increase: function() {
      value++;
    },
    decrease: function() {
      value--;
    },
    getValue: function() {
      return value;
    }
  }
}

let counter1 = makeCounter()
counter1.increase()
counter1.getValue() // 1

let counter2 = makeCounter()
counter2.decrease()
counter2.decrease()
counter2.getValue() // -2

클로저 모듈 패턴으로 구현한 counter 예시

profile
코딩으로 쓰는 일기장

0개의 댓글