본문 바로가기
interactive service/Web

07. 코어 자바스크립트_클래스

by jessicahan96 2022. 1. 4.

자바스크립트는 프로토타입 기반 언어라서 클래스 및 상속 개념은 존재하지 않지만 프로토타입을 기반으로 클래스와 비슷하게 동작하게끔 하는 다양한 기법들이 도입돼 왔다.

 

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

 

클래스의 prototype 내부에 정의된 메서드를 프로토타입 메서드라고 하며, 이들은 인스턴스가 마치 자신의 것처럼 호출할 수 있다.

 

클래스 상속을 흉내 낼 수 있는 방법은 다음과 같다. 첫째, subClass, prototype에 SuperClass의 인스턴스를 할당한 다음 프로퍼티를 모두 삭제하는 방법, 빈 함수(Bridge)를 활용하는 방법, Object.create를 이용하는 방법이다. 이 세 방법 모두 constructor 프로퍼티가 원래의 생성자 함수를 바라보도록 조정해야 한다.

 

super은 상위 클래스에 접근 할 수 있는 수단이다. 이처럼 상속 및 추상화를 구현하기 위해 상단히 복잡한 방법을 사용해야 했지만, ES6에서는 이를 간단히 처리할 수 있다.