6-1. prototype. [[Prototype]], constructor

스크린샷 2023-10-19 오전 11.17.49.png

생성자 함수(constructor)는 new 연산자로 인스턴스를 만들 때

그 인스턴스에는 constructor의 ‘prototype’이라고 하는 프로퍼티의 내용이

[[Prototype]]라고 하는 프로퍼티로 참조를 전달

즉,

Constructor.prototype 프로퍼티와 instance[[Prototype]]가 같은 객체를 바라보고 있음

[[Prototype]]은 접근가능한 것이 아니라 정보를 보여주기만 할 뿐으로

실제 동작상으로는 instance와 동일시됨

예시1) 배열을 생성했을 경우

: 리터럴로 생성했든 생성자 함수 Array로 생성했든간에

배열의 내부 구조는 Array 생성자 함수로 생성한것과 같음

Untitled

⇒ 왼쪽 instance의 [[Prototype]] 과 오른쪽 constructor의 prototype 프로퍼티가 동일함

⇒ 왼쪽 instance의 [[Prototype]] 과 오른쪽 constructor의 prototype 프로퍼티가 동일함

⇒ 인스턴스의 constructor 과 생성자 함수 Array constructor는 다 Array 생성자 함수를 가리킴

⇒ 인스턴스의 constructor 과 생성자 함수 Array constructor는 다 Array 생성자 함수를 가리킴

예시2) 리터럴의 숫자를 인스턴스인것처럼 사용하려면(즉, 메서드를 쓰려고 하면),