본문 바로가기
Programming/JavaScript

JavaScript 프로토타입이란

by 하하호호 2021. 10. 29.
반응형

 

1.

 

생성자 함수로 인스턴스를 생성하게 되면,

변수와 메소드를 중복 소유하는 현상이

발생하게 된다. 이는 중복에 의한 불필요한,

메모리 낭비가 발생하게 되어 프로그램의

성능을 저하시키는 원인이 된다.

 

자바스크립트는 프로토타입 prototype을 

기반으로 하여 상속을 구현한다.

 

생성자 함수가 생성하는 모든 인스턴스는

인스턴스 자신의 상위 객체인 생성자 

함수의 prototype을 상속받게 된다.

 

다시,

모든 객체는 [[Prototype]]이라는 내부슬롯을

가지고 있다. 모든 객체는 '__proto__' 접근자

프로퍼티를 통해서 자신의 프로토타입, 즉

[[Prototype]] 내부 슬롯에 간접적으로 

접근할 수 있다.

 

일반 적인 객체의 프로토타입은 다음과 같다.

person 객체의 [[Prototype]] 내부 슬롯이

가리키는 객체인 Object.prototype에 

접근하기 위해서 '__proto__' 접근자

프로퍼티를 사용한 결과값이다.

 

 

 

모든 객체는 상속을 통해서

Object.prototype.__proto__  접근자 프로퍼티를

사용할 수 있다. 

 

 

2. 

모든 프로토타입은 constructor 프로퍼티를 가진다.

생성자 함수의 prototypedms 생성할 객체의

프로토타입을 가리킨다.

 

일반객체를 포함한 모든 객체는 __proto__프로퍼티를

가진다.

 

생성자함수로 만들어진 객체(인스턴스)의 프로토타입을

__proto__접근자 프로퍼티로 확인해보면, 생성자함수의

prototype의 프로토타입과 동일한 결과갑을 얻을 수 있다.

 

 

 

 

 

반응형

댓글