__proto__와 prototype

%E1%84%83%E1%85%A1%E1%84%8B%E1%85%AE%E1%86%AB%E1%84%85%E1%85%A9%E1%84%83%E1%85%B3

한동한 쉬었던 공부를 다시 하면서 __proto__와 prototype 관계를 도식화(?) 하여 그려봤습니다. 노가다 정신을 발휘하여 크롬과 사파리 콘솔에서 하나씩 === 해보면서 확인했네요 ㅋㅋ;;
(머리가 나쁘면 몸이라도 고생해야죠)

사실 Function 과 Object 사이의 복잡한 화살표들은 그닥 중요하지 않은 거 같아요.

중요한건 2가지 정도 되는 것 같네요.

1.객체의 __proto__ 는 부모의 prototype 객체를 가르킨다.
2. 함수 표준 프로퍼티인 prototype은 자신과 constructor 프로퍼티로 연결되는 prototype 객체를 가르킨다.

사실 1번만 알면 prototype 체이닝을 이해할 수 있는 것 같네요.

Object를 살펴보면 prototype 프로퍼티를 가지고 있고 __proto__ 프로퍼티가 Function.prototype을 가르키는데, 아마 Object도 내부적으로는 함수에 의해 생성되지 않을까 짐작을…
(이러면 괴수분께서 답변을 달아주시겠죠?, 틀린것 있어도 답변 부탁드립니다 ㅎㅎ)

2개의 좋아요