prototype chain

프로토타입 체인은 없는 속성을 위쪽 객체에서 찾는다

class 문법을 쓰더라도 메서드는 prototype에 놓이고 인스턴스는 체인을 통해 공유 메서드를 찾습니다.

Own property

Own property

엔진은 먼저 객체 자신에게 해당 속성이 있는지 확인합니다.

Prototype

Prototype

없으면 [[Prototype]]이 가리키는 부모 객체로 올라갑니다.

Constructor

Constructor

생성자 함수의 prototype은 new 인스턴스의 부모 객체가 됩니다.

Class syntax

Class syntax

extends와 super는 프로토타입 상속을 읽기 쉽게 감싼 문법입니다.

메서드 공유 Person.prototype.sayHello는 모든 인스턴스가 같은 함수를 참조합니다.
체인 연결 Object.create 또는 extends로 부모 prototype을 연결합니다.
끝 지점 Object.prototype 이후 null에 도달하면 검색은 undefined로 끝납니다.

프로토타입 상속을 읽는 기준은 복사 여부가 아니라 속성 검색 경로가 어디로 이어지는지입니다.