본문 바로가기
Javascript/Javascript 객체지향

[생활코딩] 객체지향 - prototype vs proto

by 닉우 2020. 8. 5.

함수란 무엇인가?

 

함수는 자바스크립트에서 만큼은 독특하다.

statememt로 보이지만 사실 객체이다.

 

function Person(){} 과 var Person = new Function(); 은 같다.

객체이니까 때문에 프로퍼티를 가질 수가 있다.

 


Person 객체를 생성하면 Person의 prototype 객체가 생긴다.

서로가 연관되어 있어서 서로를 알고있어야 된다.

 

Person 객체는 내부적으로 프로토타입이라는 프로퍼티가 생기고,

그 프로퍼티는  Person의 프로토타입 객체를 가르킨다.

(Person.prototype이 Person's prototype인거다.)

 

 

Person's prototype 객체도 자신이 Person에 소속되어 있다는것을 표시하기 위해서

어딘가에 기록해야된다. 그래서 constructor라는 프로퍼티를 만들고

그 프로퍼티는 Person을 가르킨다.

 

kim이라는 객체가 생성될 때 __proto__는 Person's prototype을 가르킨다.

kim.__proto__로 접근 가능하다는거다.

 

 


 

 

 

 

 

 

 

 

 

 

※ 본 포스팅은 개인 공부 기록을 목적으로 남긴 글이며 본 사실과 다른 부분이 있다면 과감하게 지적 부탁드립니다.

댓글