[코어 자바스크립트] 클래스 정리

  • 자바스크립트는 프로토타입 기반 언어
  • 프로토타입을 기반으로 클래스와 비슷하게 동작하게끔 하는 기법들이 도입돼 왔음

클래스와 인스턴스

  • 어떤 사물의 공통 특성을 모아 정의한 추상적인 개념
  • 인스턴스는 클래스의 속성을 지니는 구체적인 사례
  • 상위 클래스(superclass)의 조건을 충족하면서 더욱 구체적인 조건이 추가된 것을 하위 클래스(subclass)라고 함

메서드

  • 클래스의 prototype 내부에 정의된 메서드는 프로토타입 메서드라고 함
  • 프로토타입 메서드는 인스턴스가 마치 자신의 것처럼 호출할 수 있음
  • 클래스(생성자 함수)에 직접 정의한 메서드는 스태틱 메서드라고 함
  • 스태틱 메서드는 인스턴스가 직접 호출할 수없고 클래스(생성자 함수)에 의해서만 호출할 수 있음

클래스 상속을 흉내 내기 위한 세가지 방법

  1. SubClass.prototypeSuperClass의 인스턴스를 할당한 다음 프로퍼티를 모두 삭제하는 방법
  2. 빈 함수(Bridge)를 활용하는 방법
  3. Object.create를 이용하는 방법

ES6

  • 클래스 문법이 도입됨
  • 이전까지는 상속 및 추상화를 구현하기 위해 상당히 복잡한 방법을 사용했는데 ES6에서는 상당히 간단하게 처리됨

Written by@thumbsu
프론트엔드 개발자 엄지수 입니다.

GitHubTwitterLinkedIn