Class에 대해서
class
class는 함수이다.
class Car {
constructor(brand, price) {
this.brand = brand;
this.price = price;
}
getBrand() {
return `이 차는 ${brand} 입니다`;
}
}
console.log(typeof Car); // 'function'
- 이 class함수의 본문은 constructor에서 가져오고, constructor가 없으면
빈 함수로 생성된다. (class함수는 constructor 메소드와 동일하다. Car === Car.prototype.constructor === true)
- method들은 (예시에서 getBrand와 같은) Car.prototype에 저장된다.
class를 사용하는 이유는?
가장 큰 이유는 ‘재사용성’ 그리고 ‘편의성’이다.
계산기를 만든다고 가정해보자.
// 더하기
const add = (acc, cur) => {
return acc + cur;
};
// 빼기
const sub = (acc, cur) => {
return acc - cur;
};
// 곱하기, 나누기 등등..
일반적으로 함수들을 이용하면 더하기, 빼기, 곱하기, 나누기 등
각각의 함수들을 만들어줘야 하고, 이것이 복잡해질수록 (서비스가 커질수록)
코드는 어려워지고, 가독성이 떨어지게 된다.
이것을 class를 사용하게 되면,
class Cal {
// 더하기
add(acc, cur) {
return acc + cur;
}
// 빼기
sub(acc, cur) {
return acc - cur;
}
// 나누기
div(acc, cur) {
return acc / cur;
}
// 기타 곱하기 등..
}
const calculator = new Cal();
console.log(calculator.add(5, 3)); // 8
console.log(calculator.sub(10, 5)); // 5
위와 같이 class의 한 객체로 관리하며 사용할 수 있다.