오늘 수업에서 배운 내용으로 이해하는게 쉽지 않아서 다른 사이트와 영상들을 참고하여 나름대로 이해해보았습니다.
그 내용을 정리해볼까 합니다.
1. 프로토타입 객체란?
-우리가 자바스크립트에서 함수를 정의하면, 2가지 객체가 생성됩니다.
하나는 우리가 정의한 함수(객체)이고, 또 하나는 그것의 프로토타입 객체입니다.
이 두개의 객체는 서로 연관되어있습니다.
우선 "person함수" 에는 <prototype>이라고 하는 속성(property)이 있습니다.
이 속성은 "person 의 프로토타입 객체"를 참조합니다.
마찬가지로 "person의 프로토타입 객체" 에는 <constructor> 속성이 있습니다.
이 속성은 "person 함수 (객체)" 참조합니다.
즉, person함수와 그의 프로토타입 객체는 상호 참조 관계입니다.
여기에서 프로토타입 객체의 특성을 알아보기 위해,
person.prototype.give = function(){}
와 같이 새로운 정의를 해보겠습니다.
이것의 의미는
"person의 prototype의 give에다가 함수를 정의해주겠다." 가 됩니다.
그런데 여기서 prototype은 애초에 함수의 속성값인데 이 아이가 가리키는 곳은 prototype 객체 입니다.
즉 여기 prototype객체의 속성값에서 give를 찾아주면 그것을 person의 prototype이 참조하게 됩니다.
proto type 객체에 give가 없으니 여기에 give를 생성해주고, 거기에 함수를 정의합니다.
반응형