
자바스크립트에서는 객체를 상속하기 위해 프로토 타입이라는 방식을 사용하고, string, number, bigint, boolean, undefined, symbol, null의 7가지 타입의 원시타입을 제외한 모든것이 객체로 이루어져 있어, 자바스크립트를 프로토 타입 기반 언어라고도 부른다.


다음 코드를 보면, Member라는 팩토리 함수를 선언했을 때, 자동으로 프로토타입이 생성되어 있고, constructor라는 생성자 객체 또한 자동으로 생성되어 있음을 알 수 있다.
이 프로토타입에 함수를 추가함으로써, 팩토리 함수를 통해 여러 객체를 생성했을 때, 그 객체들은 해당 속성을 각각 가지고있진 않지만, 해당 함수를 사용할 수 있게된다.
이는 자바스크립트에서, 객체의 속성에 접근했을 때, 객체가 해당 속성을 가지고 있다면, 그 속성을 반환해주고, 그 속성을 가지고있지 않으면, __proto__라는 프로토타입 링크를 통해 자신의 프로토타입의 속성을 참조하게 되어, 있으면 반환하게 된다.
프로토 타입 체인이란, 객체의 속성에 접근할 때, 가지고 있지 않으면 속성을 찾기위해 프로토타입 링크를 통해 접근하게 되는데, 이러한 프로토타입의 링크를 통해 접근한 프로토타입에도 해당 속성이 존재하지 않으면, 또 다시 그 객체의 프로토타입 링크를 통해 계속해서 상위 객체로 이동하게 되는데 이를 프로토타입 체인이라고 한다.