본문 바로가기

JavaScript/Basic-Javascript

자바스크립트 정리하며 배우기[11] - 프로토타입 객체(prototype), 부모객체 상속

안녕하세요. Tay 입니다.

Javascript 는 prototype 기반 언어입니다.

여기서 프로토타입 이라는 것이 무엇인지 아래 내용으로 확인해보시죠!

 

 

프로토타입 (Prototype)

모든 객체는 자신의 부모 역할을 하는 객체와 연결되어 있다. 이러한 부모 객체를 프로토타입 이라 한다.

 

1) index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!-- <script src="reference.js"></script> -->
    <!-- <script src="compare.js"></script> -->
    <script src="prototype.js"></script>
</body>
</html>

 

2) prototype.js

prototype.js

var a = 10;

console.log(a);

var objA = {
    value : 10
};

console.log(objA);

 

첫번째 log 에서는 기본 타입 a 변수를 출력한다.

두번재 log 에서는 객체 objA 를 출력한다.

 

Github Commit

 

과연 두 log 에서 얻을 수 있는 차이가 무엇인지 확인 해보자.

 

 

결과 :

object_proto

우리는 단지 객체 objA 를 선언하고 value 프로퍼티를 생성 했다.

그런데 자동으로 __proto__ 가 있다. 그 이유는 무엇일까?

 

 

이유 :

직접 객체 리터럴로 생성한 value 프로퍼티 이외에도 __proto__ 프로퍼티가 있다.

이 __proto__ 프로퍼티는 앞에 설명한 "모든 객체는 자신의 부모 역할을 하는 객체와 연결되어 있다" 를 뜻한다. 즉, 객체는 자신의 부모 객체를 __proto__ 라는 내부 프로퍼티로 연결하고 있다.

 

__proto__ 프로퍼티가 가르키는 객체가 Object.prototype 객체이며, 부모 객체로부터 상속받는다. 

 

 

 

이 글은 개인 공부목적으로 작성되었습니다.

정보가 잘못 되거나 궁금한 사항은 댓글로 부탁드립니다!! 읽어주셔서 감사합니다.