TIL wecode 06. Class

이조은·2020년 7월 26일
0

TIL wecode

목록 보기
6/36

class

클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀로, 객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성된다.

  • class 선언
    클래스 안에는 name과 price와 같은 속성(field)가 들어있고, applyDiscount()와 같은 행동(method)가 들어있다.
class Car { //class의 이름은 CamelCase로 작성한다.
  constructor(name, price) {
    this.name = name; //전달 받은 데이터를 이 클래스의 속성에 할당한다
    this.price = price;
    this.department = "선릉지점";
    this.salesAmount = 0;
  }

  applyDiscount(discount) {  
    return this.price * discount; //이 클래스에 있는 가격을 출력하여 할인률을 곱해라
  }
  
  addSales() {
    this.salesAmount++;
  }
}
  • object 생성
const morning = new Car('Morning', 2000000);
console.log(morning); //Car {name: 'Morning', price: 2000000, department: '선릉지점', salesAmount: 0}
console.log(morning.name); //Morning

const price = morning.applyDiscount(0.8); 
console.log(price); //1600000

morning.addSales();
console.log(morning.salesAmount); //1

함수 vs 클래스


예를 들어보자. 슬라이더를 만들 때 여러 기능들이 필요하다. 만약 함수를 이용한다면 기능 하나 하나에 대해 로직을 구현하게 될 것이다. 이렇게 하면 전역스코프가 오염될 뿐 아니라 코드의 가독성이 떨어지고 그로 인한 유지보수가 힘들어 진다.

하지만 클래스를 이용한다면 슬라이더에 대한 기능을 모두 그룹화하여 관리할 수 있다. 연관 있는 변수와 함수를 그룹화할 수 있는 것이다.

생성자(constructor)

생성자 메소드는 객체의 생성과 초기화를 하는 특별한 메소드이다. class는 새로운 instance를 생성할 때마다 constructor()메서드를 호출합니다.

인스턴스(instance) vs 객체(object)

클래스가 설계 도면이라면 인스턴스는 설계에 따른 실체가 담겨 지는 곳이다. 클래스 인스턴스를 생성해야만 클래스에 들어 있는 함수들의 내부 기능들을 사용할 수 있다.

객체는 인스턴스의 한 종류이다. 인스턴스는 주로 new 연산자를 이용하여 클래스의 실체를 생성할 때 사용하고 이 외에 클래스에서 제공하는 프로퍼티와 메소드를 사용한다고 했을 때의 경우를 객체라고 말한다.

메서드(method)

어떤 특정 작업을 수행하기 위한 명령문의 집합을 의미한다. 내가 이해할 때는 클래스에 들어있는 함수라고 보면 될 것 같다. 클래스의 메서드는 객체의 메서드와 문법이 똑같은데 객체는 프로퍼티마다 컴마로 구분했지만 클래스에서는 컴마가 필요 없다.

참고자료

profile
싱글벙글

0개의 댓글