Class

작성일: 2018-02-09

class Person {
  constructor(name) {
    this._name = name;
  }

  sayHi() {
    console.log(`Hi, ${this._name}!`);
  }
}

const me = new Person('Park');
me.sayHi();

console.log(me instanceof Person);

contructor

  • 인스턴스의 생성 및 초기화

  • 클래스 내 한개만 존재해야 함

  • 생략 가능

멤버변수

  • 클래스 바디에는 메소드만 포함 가능

  • contructor 내부에서 멤버 변수의 선언 및 초기화는 가능

this

  • 클래스의 인스턴스이다.

  • public 이며, 외부에서 참조 가능하다.

호이스팅(Hoisting)

  • 클래스 선언문 이전에 클래스를 참조하면 참조 오류 발생

getter

  • 멤버변수처럼 사용된다.

  • getter 는 반드시 무언가를 반환해야 한다.

setter

정적 메소드

  • 클래스의 인스턴스화 없이 호출한다.

  • 클래스의 인스턴스로 호출할 수 없다.

  • ex) Math.abs(-1)

클래스 상속(Inheritance)

Base Class

Sub Class

  • super 키워드는 부모 클래스의 contructor 를 호출한다.

  • 자식 클래스에서 super()를 호출하지 않으면 참조 오류가 발생한다.

  • super()를 호출하기 이전에는 this 를 참조할 수 없다.

  • 부모 클래스의 정적 메소드도 상속된다.

  • 자식 클래스의 일반 메소드에서는 super 를 사용하여 정적 메소드를 호출할 수 없다.

  • 오버로딩(메소드 확장)은 지원하지 않으나 arguments 객체를 활용할 수는 있다.

기타

  • private, public, protected 와 같은 접근 제한자를 지원하지 않는다.

참고

poiemaweb

Last updated

Was this helpful?