출처 : 인프런 얄팍한 코딩사전
자바스크립트는 프로토타입 기반의 객체지향 프로그래밍을 지원하는 언어
오늘날에는 클래스가 더 널리 사용되지만, 사용하기에 따라 보다 강력하고 효율적
자바스크립트의 모든 객체는 Prototype을 가짐


수정할 때는 Object.setPrototypeOf 사용
proto 대신 이 기능을 사용할 것

즉 function으로 선언된 함수들에서 [[Prototype]]이 두 단계로 있음 확인 (Person - Object)


chat 한테 물어본 인스턴스와 프로토타입 차이점

상속은 보통 JavaScript에서 class로 많이 하기 때문에 prototype으로는 잘 사용하지 않는다고 한다.
Object.create 메서드
주어진 것을 프로토타입으로 갖는 객체를 생성

상속을 먼저 하고 자체 프로토타입 프로퍼티 입력
Object.create... 대신 Bird.prototype 대입 결과 비교 - eagle과 bird 모두 확인
생성자에서 중복되는 부분 위임
class에서는 constructor에서 super 사용

클래스 역시 프로토타입을 기반으로 구현됨
클래스와 프로토타입
클래스의 메서드는 프로토타입으로 들어가게 됨
extends - 프로토타입 상속도를 만듦

run 함수 또는 메서드가 속한 곳 비교
필드는 양쪽 모두 인스턴스에 속함

인스턴스의 클래스/생성자함수 이름 출력
무엇의 인스턴스인지 프로그램상에서 이름으로 파악할 때 유용

상속 - 한 부모로부터만 물려받음
믹스인 - 여럿을 조합하여 가져올 수 있음
