JavaScript는 프로토타입(원형 객체) 기반 언어 → 객체를 상속하기 위해 프로토타입을 이용한다. 상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있다. 프로토타입 체인에서 한 객체의 메소드와 속성들이 다른 객체로 복사되는 것이 아니고, 체인을 타고 올라가며 접근할 뿐이다. 상속 받는 멤버들은 prototype 속성에 정의되어 있다 Object.로 시작하는게 아니라, Object.prototype.로 시작한다. prototype 속성도 하나의 객체이며 프로토타입 체인을 통해 상속하고자 하는 속성과 메소드를 담아두는 버킷으로 주로 사용되는 객체이다. 그래서 Object.is(), Object.keys()등 prototype 버킷에 정의되지 않은 멤버..