1. Class와 Prototype
- 공통점
- 객체 지향 프로그래밍 지원: 둘 다 JavaScript에서 객체 지향 프로그래밍(OOP)을 지원하는 데 사용됩니다.
- 메서드 정의: 둘 다 객체의 메서드를 정의하는 데 사용할 수 있습니다.
- 상속: 둘 다 상속을 구현할 수 있습니다. prototype 체인과 class 상속을 통해 객체 간의 상속을 설정할 수 있습니다.
- 차이점
- class
- ES6에서 도입된 더 직관적이고 간결한 문법을 제공합니다.
- extends 키워드를 사용하여 상속을 구현합니다.
- super 키워드를 사용하여 부모 클래스의 생성자와 메서드를 호출할 수 있습니다.
- 클래스 문법은 더 직관적이고 가독성이 좋습니다. JavaScript에 익숙하지 않은 개발자라도 쉽게 이해할 수 있습니다.
- prototype
- ES6 이전의 JavaScript에서는 객체와 함수의 프로토타입을 통해 메서드와 속성을 정의했습니다.
- 생성자 함수와 프로토타입 체인을 사용하여 상속을 구현합니다.
- super 키워드가 없으므로 부모의 메서드를 직접 호출해야 합니다
- 프로토타입 기반 상속은 덜 직관적이며, 특히 상속 계층이 깊어질수록 복잡해질 수 있습니다.
- class