prototype
은 생성자 함수의 식별자에서 접근할 때 사용하는 것이고,
__proto__
는 생성자 함수로 만든 인스턴스의 식별자로 접근할 때 사용하는 것이다.간편하게 외우기 :
prototype은 하위
,__proto__ 는 상위
생성자 함수가 생성될 때 자동으로 만들어지는 객체이다.
이 객체안에 있는 프로퍼티와 함수들은 인스턴스에게 상속되어지는 것들이다.
__proto__
생성자 함수로 만들어진 인스턴스는 생성자 함수와 연결되는 것이 아니라
prototype
과 연결이 된다.
이 연결 구조를 가지고 있는 것이__proto__
이다.인스턴스는 이 연결(
프로토타입 체인
)으로써prototype
의 프로퍼티와 메서드에 접근할 수 있다.이러한 메커니즘을 상속이라고 한다.
부모 객체를 지정하는 메서드
일반적으로 생성자 함수의 prototype과 연결한다.
let obj = {0: 10, length: 1}; Object.setPrototypeOf(obj, Array.prototype)