TIL25.JS class

조연정·2020년 9월 21일
0
post-thumbnail

js에 class나 object가 없다면, 규모있는 프로젝트를 만들기 굉장히 힘들다. 'class'에 대해 알아보고, object와의 차이를 정리해보자.

class

  • 클래스는 객체지향 프로그래밍의 핵심이다.
  • 청사진, 또는 template라고 불리기도 한다.
  • 연관있는 데이터들이 종합적으로 묶여있는 것을 class라고 할 수 있다.
  • 클래스 자체에는 데이터가 들어있지 않고, 선언만 한다.
    (클래스를 붕어빵틀이라고 생각해보자. 붕어빵틀에 슈크림, 팥 등 우리가 원하는 맛을 넣어주기만 하면 완성된다. 즉, 만든 붕어빵은 오브젝트이고, 붕어빵 틀은 클래스이다.)

class와 object

  • 큰 규모의 객체 또는 비슷한 모양의 객체를 계속 만들어야 한다면 class를 선택하는 편이 좋다.
  • 둘의 가장 큰 차이는 constructor라는 생성자 함수이다. class를 통해 생성된 객체를 인스턴스라고 부르는데, class는 새로운 instance를 생성할 때마다 construcor()메소드를 호출하게 된다.

class 선언

  • class명은 항상 대문자로 작성해야 한다.
  • 새로운 object를 생성할 때는 'new'를 붙여줘야한다.
  • class 안에는 속성(field)과 행동(method)이 들어있다. 둘 중 하나만 존재하는 것도 가능하다.
class Car {
  constructor(name, price) {
   	//fields
    this.name = name;
    this.price = price;
  }
  //methods
  speak() {
  	console.log(`${this.name}입니다.`);
    }
  applyDiscount(discount) {
   console.log(this.price * discount);
  }
}
const ray = new Car('ray', 2000000);
const sonata = new Car('sonata', 30000000);

console.log(ray.name); 		//ray
console.log(ray.price);		//2000000
ray.applyDiscount(0.1); 	//200000
ray.speak(ray);				//ray입니다.	
console.log(sonata.name);	//sonata
console.log(sonata.price);	//30000000
profile
Lv.1🌷

0개의 댓글