🌈 인프런의
코어 자바스크립트(정재남)
수강 후, 이해한 내용을 정리한 글입니다.
prototype은 아래 그림에서 파랑과 빨강이 만나는 prototype을 말한다. 즉, constructor의 프로퍼티
중 하나이다. 반면, [[Prototype]]은 instance의 프로퍼티
이다.
prototype과 동일한 객체가 들어있다. 아래 경우를 가정하자.
콘솔로 [[Prototype]]과 prototype을 확인하면 동일하다는 것을 알 수 있다.
[1, 2, 3]의 [[Prototype]] | Array.prototype |
---|---|
![]() | ![]() |
그러므로 이론상으로는 아래의 코드가 성립한다.
instance.[[Prototype]] === constructor.prototype
이렇게 접근하려고 하면 SyntaxError가 나온다.
둘 중, getPrototypeOf이 권장된다.
// 방법1
[1, 2, 3].__proto__
// 방법2(권장)
Object.getPrototypeOf([1, 2, 3])
방법1 | 방법2(권장) |
---|---|
![]() | ![]() |