Classes

Alpaca·2021년 10월 25일
0

Javascript

목록 보기
6/6

Classes

class는 쉽게 생각하면 obj를 찍어내는 공장이라고 생각하면 된다

가로, 세로의 길이는 똑같은데 색만 조금씩 다른 천조각을 만드는 공장이 있다고 가정해보자
이 공장에서는 black, red, blue 세 가지색을 사용하는데 그럼 이를 위해 3가지의 기계를 구매해야 하는가? 아니면 염색약을 넣을 수 있는 통을 만들어 그 통에 원하는 색의 염색약을 넣게하는 것이 효율적일까?

이전에도 이와 비슷한 것을 위해 함수를 만들어 사용하였다

function fabricFactory (color) {
  this.color = color;
  this.width = 1000;
  this.length = 500;
}

이제 원하는 색을 넣으면 그에 맞는 obj가 나올 것이다

const redFabric = new fabricFactory('red');

하지만 위의 함수도 함수기 때문에 일반함수와의 구분을 위해 새로운 공장인 class가 등장했다

class fabricFactory {
  constructor(color) {
  	this.color = color;
    this.width = 1000;
  	this.length = 500;
  }
}

사용방법은 똑같다

const redFabric = new fabricFactory('red');

이 class를 확장하여 사용하고 싶다면(예를 들어 체크패턴을 추가하고 싶다면) extends를 사용하면 된다

class patternedFabric extends fabricFactory {
  constructor(color, pattern) {
    super(color);
    this.pattern = pattern;
  }
}

여기서 super는 어떤 것을 fabricFactory로 부터 받아오고 싶은지(상속받을 것인지)에 대한 것을 명시하는 것이다

const plaidFabric = new patternedFabric('blue', 'plaid');
profile
2020년 10월 15일 퇴사하고 개발자의 길에 도전합니다.

0개의 댓글