내가 보려고 만든 개발 공부 일지

Javascript - Prototype object 본문

Javascript

Javascript - Prototype object

kwangsunny 2021. 7. 16. 23:36

이전 글에 이어서 이번엔 프로토타입의 Prototype object 란 개념에 대해 정리해본다. 

 

함수는 정의될때 prototype object가 어딘가에 같이 생기고 생성된 함수는 .prototype이라는 속성으로 prototype object에 접근할 수 있다.

prototype object 일반적인 객체와 같고 안에는 constructor(생성자) __proto__ 속성을 가지고 있다.

또한 prototype object 일반객체이므로 속성을 맘대로 추가/삭제 있다.

(추가/삭제 함수로 만들어진 객체들은 값을 공유하므로 당연히 객체들의 속성들도 그대로 바뀐다.)

function Person(){}
var kim = new Person();

constructor 정의된 함수를 가리킨다 ( 예제에선 Person 가리키게된다.) 

생성자가 있다는건 new 통해 객체를 만들어낼 있다는 뜻인데, 이것이 함수만이 new 사용할 있는 이유다.

(이전 프로토타입 글에서 모든 객체는 언제나 함수에 의해 생성된다고 했던 이유)

var obj = {};
var a = nwe obj();  
// obj는 함수가 아니므로(=생성자 자격이 없으므로) 
// obj is not a constructor 라는 에러가 발생함.

 

* 요약

함수가 정의되면

1. 해당 함수에는 constructor (생성자) 자격이 부여되고 new 객체를 생성할 있다.

2. prototype object 어딘가에 만들어진다.

 

다음 글에선 Prototype link 에 대해 공부하고 정리해보겠다.

 

참고 : https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/Object_prototypes

 

Object prototypes - Web 개발 학습하기 | MDN

Javascript에서는 객체를 상속하기 위하여 프로토타입이라는 방식을 사용합니다. 본 문서에서는 프로토타입 체인이 동작하는 방식을 설명하고 이미 존재하는 생성자에 메소드를 추가하기 위해

developer.mozilla.org

 

Comments