자바스크립트는 객체지향 언어입니다. 그러나 클래스가 없는 프로토타입 기반의 객체지향 언어입니다. 클래스가 없는 대신 자바스크립트 객체(array, object, 함수)의 특정 속성은 부모 클래스 역할을 하는 객체를 참조하는데, 그 객체가 프로토타입입니다. 프로토타입 객체를 사용해 상속의 개념인 부모 객체의 속성 접근이나 메서드 호출이 가능합니다. 프로토타입의 원리와 특징을 함수 객체위주로 살펴보도록 하겠습니다. 프로토타입 객체가 생성되면 프로토타입 객체도 함께 생성됩니다. 함수 객체의 경우 함수의 prototype 속성이 함수와 함께 생성된 프로토타입 객체를 참조합니다. 반면에 생성자 함수로 정의된 객체는 __proto__ 속성을 갖습니다. __proto__ 속성도 프로토타입 객체를 참조합니다. 자세한 ..