TIL -23. JavaScript : Class

이지연·2020년 7월 27일
0

JavaScript는 객체지향 중심에 있는 언어는 아니다.
하지만, 프로그래밍에 있어서 class,객체,객체지향은 항상 중요한 주제이다.

여기서, 객체지향이 프로그래밍이란 무엇인가?

프로그램을 객체들로 구성하고,
객체들 간에 서로 상호작용하도록 작성하는 방법

객체는 또 무엇일까?
“실제로 존재하는 것”, 실체라고 생각하면 쉽다.

우리가 일상생활에서 자주 보는 자동차를 생각해보면, 자동차의 수많은 구조들이 있다. 그 수많은 구조들이 틀을 짜놓고, 비슷한 모양으로 공장처럼 찍어낼 수 있는 것! 그것이 바로 객체라고 생각하면 된다.

객체를 매번 만들어서 사용해도 좋지만, 큰 규모의 객체이거나 비슷한 모양의 객체를 계속 만들어야 한다면 class라는 설계도를 통해 만들면 된다.

  1. 객체 생성
let 객체명 = {
	프로퍼티의 이름(key): 프로퍼티의 값(value)
     }
  1. 객체 내 프로퍼티 접근
    .(점)과 대괄호[]를 이용한다.

3.생성자(Constructor)

  • 객체(Object)의 설계도인 클래스(class)는 문법이 비슷하다.

  • 생성자 함수

  • 아래와 같이 class로 객체를 생성하는 과정을 인스턴스라 부른다.

    const morning = new Car('Morning', 2000000);

  • class는 새로운 instance를 생성할 때마다 constructor()메서드라고 호출

class Car {
  constructor(name, price) {
    this.name = name;
    this.price = price;
  }
}
  • Car는 class이름입니다. 항상 대문자로 시작하고, CamelCase로 작성해야 합니다.
  • Car class의 instance를 생성할때마다 constructor메서드가 호출됩니다.
  • constructor()메서드는 name, price 2개의 argument(인자)를 받습니다.
  • constructor()메서드에 this 키워드를 사용했습니다. class의 실행범위(context)에서 this는 해당 instance를 의미합니다.
  • constructor()에서 인자로 넘어오는 name과 price를 사용해 Car instance의 name, price 프로퍼티에 값을 할당했습니다.
  • 이렇게 클래스 내에서 name, price와 같이 변경 가능한 상태값이자 class내의 컨텍스트에서 어느 곳에서나 사용할 수 있는 변수를 '멤버 변수'라고 부릅니다.
  • 멤버 변수는 'this' 키워드로 접근합니다.
  1. 인스턴스(instance)
  • class를 통해 생성된 객체
  • class의 property이름과 method를 갖는 객체
  • 인스턴스 마다 모두다른 property값을 갖고 있다.
const morning = new Car('Morning', 20000000);
  • 인스턴스는 Class 이름에 new를 붙여서 생성합니다.
  • 클래스 이름 우측에 () 괄호를 열고 닫고, 내부에는 constructor에서 필요한 정보를 인자로 넘겨줍니다.
  • Car클래스의 instance를 morning이라는 변수에 저장했습니다.
    다시 한 번! Car 클래스의 새로운 instance를 생성하려면 new 키워드가 필요합니다. new키워드는 constructor() 메서드를 호출하고 새로운 instance를 return해줍니다.
  • 'Morning'이라는 String과 2000000이라는 Number를 Car 생성자에 넘겨주었고, name, price 프로퍼티에 각자의 값이 할당되었습니다.
  1. 메서드(method)
  • 함수이다.
  • 객체가 프로퍼티 값으로 갖고 있는 것을 메서드라 한다.
  • class의 method는 object(객체)의 문법과 똑같다
  • 객체는 프로퍼티마다 comma(,)로 구분해줘야 한다. 하지만 class는 그렇지 않다.
profile
Everyday STEP BY STEP

0개의 댓글