[TIL] 008. JavaScript - Class

홍효정·2020년 9월 21일
0

TIL

목록 보기
8/40

Class

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


생성자(Constructor)

// 클래스 선언문
class Person { // 첫글자는 대문자로 시작
  // constructor(생성자)
  constructor(name) {
    this._name = name;
  }
}
  • Person은 class의 이름이다. 항상 대문자로 시작하고, CamelCase로 작성해야 한다.
  • Person class의 instance를 생성할때마다 constructor메서드가 호출된다.
  • class의 실행범위(context)에서 this는 해당 instance를 의미한다.
  • 클래스 내에서 name과 같이 변경 가능한 상태값이자 class내의 컨텍스트에서 어느 곳에서나 사용할 수 있는 변수를 '멤버 변수'라고 부른다.

메서드(Methods)

class Person {
  constructor(name) {
    this._name = name;
  }
  
  // Person객체에 sayHi라는 메서드 추가!
  sayHi() {
    console.log(`Hi! ${this._name}`);
  }
}
  • 객체에 함수를 프로퍼티로 갖고있는것을 메서드라고 한다.
  • 다만 객체는 프로퍼티마다 ','로 구분해야 했지만 class는 그렇지 않다.

인스턴스(Instance)

// 인스턴스 생성
const me = new Person('Lee');
me.sayHi(); // Hi! Lee

console.log(me instanceof Person); // true
  • Person클래스의 instance를 me라는 변수에 저장했다.
  • 인스턴스는 Class 이름에 new를 붙여서 생성한다.
  • 클래스 이름 우측에() 괄호 내부에는 constructor에서 필요한 정보를 인자로 넘겨준다.
profile
HHJ velog 🍔

0개의 댓글