상세 컨텐츠

본문 제목

[Javascript] prototype을 통한 상속

JAVA SCRIPT

by 혀누쓰0 2022. 6. 15. 20:12

본문

 

 

 

 

같은 값을 가지는 객체를 여러개 생성할때  생성자 함수를 만들어서 new로 값을 저장한다.

 

이때 생성자 함수의 시작은 대문자로 시작한다.

 

 

function Info() {
  this.age = 20;
  this.color = 'red'
}

const info2 = new Info();
const info3 = new Info();

 

Info라는 생성자 함수의 값을  info2, info3 객체들에게 값을 저장했다. 

 

생성자 함수가 만들어낸 객체를 instance 라고부른다.

 

 

 

 

생성자를 통해서 만들어진 인스턴스들은 각자 값을 가지고 있다.

 

위에서 Info의 값이 info2, info3에 저장된것을 확인할 수 있다.

 

그런데 이렇게 객체들에게 똑같이 값을 주는것은 메모리 낭비다.

 

 

 

 

 

prototype

 

 

같은 생성자를 통해서 만들어진 인스턴스들이 같은 값을 가지는것이 prototype이다.

 

중복되는 값은 생성자 함수에 prototype을 이용해서 값을주고

 

인스턴스는  그 prototype의 값을 상속 받는다

 

인스턴스.프로토타입값을 출력하면 출력되지만

 

실제로 그 값은 인스턴스는 가지고 있지 않다.

 

위에서도 콘솔창을 보면 실제로 info2, info3가 가지고 있는 값은 생성자에서 정의한 값만 있다

 

값은 부모만 가지고 있다.

 

 

 

 

 

instanceof

 

 

instanceof를 통해서 앞에 객체가 뒤에 생성자에서 생성된건지 확인할 수 있다.

 

위에서 info2는 Info를 통해서 생성됐기 때문에

 

true를 출력한다.

 

관련글 더보기