호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer

Unit2 - [JS] Prototype 프로토타입 본문

Codestates 부트캠프/Section02 - TIL

Unit2 - [JS] Prototype 프로토타입

RachelLee 2022. 7. 22. 17:11

Prototoype

: 객체 안에 __proto__(비표준) 속성이 자신을 만들어낸 원형을 의미하는 프로토타입 객체를 참조하는 숨겨진 링크가 있고

  이 링크를 "프로토타입" 이라고 정의한다.

   JavaScript 는 프로토타입 기반의 언어이다.

 

Human이라는 클래스와 인스턴스, 그리고 프로토타입의 관계

 

Array(배열) 클래스와 인스턴스, 그리고 프로토타입의 관계

 

더보기

??????????????????????????????????????????? 

세상.. 어렵... 

구굴링하고 읽으면 읽을 수록 물음표 백만개..

 

"코딩애플" 에서 이해 못하면 강의 접는다기에 강의 봄  -> Wow I got it!!

 

Prototype = 유전자 

부모의 유전자는 자식에게 물려준다   =>  .protype을 사용하면 자식 object에게 데이터를 물려 줄 수 있다.

new 기계 () 추가하면 자식에게 직접 가짐. 

.prototype.name = 'kim'  부모만 가짐

 

부모 유전자에 있는 걸 자식이 사용 가능한 이유는? (원리) 

출력을 할 때, 자식이 가지고 있지 않으면 부모 유전자에게 물어보고 출력

 

즉 object 에서 자료 뽑을 때 일어나는 일! => 프로토타입 체인

1. 직접 자료를 가지고 있으면 그것을 출력 2. 없으면 부모 유전자를 확인하여 출력

3. 없으면 부모의 부모유전자까지 확인하여 출력

 

매서드(.sort  & .length & .join 등등) 를 붙일 수 있는 이유

유전자에 메서드가 등록되어 있음!  => 자식들이 사용할 수 있음

: 자바스크립트는 Prototype의 언어로써

   "Prototype" 에 메서드가 등록되어 있어서 자바스크립트에서 사용할 수 있다.