자바스크립트는 여러 가지 특성으로 객체지향 언어의 특성을 구현해낼 수 있다
클래스 기반의 언어 vs 프로토타입 기반의 언어
클래스 기반의 언어
- 클래스로 객체의 기본적인 형태와 기능을 정의
- 생성자로 인스턴스를 만들어서 사용
- 클래스에 정의된 메소드로 여러 기능 수행
- 모든 인스턴스가 클래스에 정의된 대로 같은 구조, 런타임에 바꿀수 없음
- 정확성, 안전성, 예측성
- Java, C++ 등
프로토타입 기반의 언어
- 객체의 자료구조, 메소드 등을 동적으로 바꿀수 있다
- 동적으로 자유롭게 객체의 구조와 동작 방식 변경 가능
- JavaScript
출처: 송형주, 고현준 저, 『인사이드 자바스크립트』, 한빛미디어(2014)