함수란 무엇인가?
함수는 자바스크립트에서 만큼은 독특하다.
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__로 접근 가능하다는거다.
※ 본 포스팅은 개인 공부 기록을 목적으로 남긴 글이며 본 사실과 다른 부분이 있다면 과감하게 지적 부탁드립니다.
'Javascript > Javascript 객체지향' 카테고리의 다른 글
[생활코딩] 객체지향 - 객체와 함수 / call / bind (0) | 2020.08.04 |
---|---|
[생활코딩] 객체지향 - super / 객체상속 (0) | 2020.08.01 |
[생활코딩] 객체지향 - 메소드 구현 / 상속 (0) | 2020.07.31 |
[생활코딩] 객체지향 - Classes (0) | 2020.07.31 |
[생활코딩] 객체지향 - prototype (0) | 2020.07.31 |
댓글