SEB_FE_45
Section 2. Unit 2. 객체지향프로그래밍(프로토타입과 클래스)
프로토타입
자바스크립트의 모든 객체는 자신의 부모 역할을 담당하는 객체와 연결되어 있으며, 객체 지향의 상속 개념과 같이 부모 객체의 속성과 매서드를 상속받아 사용할 수 있다. 이러한 부모 객체를 프로토타입 객체 또는 프로토타입이라 부른다.
프로토타입 기반 객체지향 프로그래밍 언어는 클래스 없이도 객체(인스턴스)를 생성할 수 있다. 자바스크립트는 흔히 프로토타입 기반 객체지향 프로그래밍 언어라 불린다. ES6문법을 통해 클래스 개념이 도입되었다.
프로토타입 체인이란 객체간의 연결을 의미하며, 이를 바탕으로 부모 객체의 속성과 매서드를 상속받아 사용할 수 있게하는 근간이다.
.prototype
함수 객체만 가지고 있는 프로퍼티이며, 함수객체가 생성자로 사용될 때 이 함수를 통해 생성될 객체의 부모 역할을 하는 객체(프로토타입 객체)를 가리킨다.
.__proto__
특정 객체의 프로토타입 객체에 바로 접근하는 공식적인 방법은 없다. 단, 많은 모던 브라우저들이 __proto__속성을 이용하여 특정 객체의 프로토타입 객체에 접근할 수 있도록 구현한다.
즉, 인스턴스 객체의 프로토타입 객체에 접근할 수 있게 해주는 접근자 속성(property)이다.
클래스, 인스턴스, 프로토타입의 관계
(정확한 개념에 대한 이해가 부족한것 같다. 추가적인 공부가 필요함)
클래스 | 인스턴스 | 프로토타입 |
특정 객체를 표현하기 위한 객체의 구조(틀) | 클래스 구조에 데이터 값을 입력한 객체 | 클래스 객체의 구조(속성과 매서드)를 상속받은 객체 |
객체 내 속성과 매서드를 정의하는 역할 | - | 속성과 매서드를 지닌 부모 객체 |
내장 객체(HTML 엘리먼트, JS Object 등)의 속성과 매서드를 상속 | 프로토타입의 속성과 매서드를 상속 | - |
프로토타입 객체의 구조(틀) | 클래스 객체의 자손 객체 | 인스턴스의 부모 객체 |
출처 : MDN, 코드스테이츠 유어클래스, 모던자바스크립트 Deep Dive, poiemaweb.com
'SEB_FE_45(코드스테이츠) > section 2.' 카테고리의 다른 글
야자라니..] Unit 4. React Intro 및 야간 자율학습 과제 (0) | 2023.05.18 |
---|---|
데일리코딩 ] 원금이 3배가 되는 시점 찾기 (0) | 2023.05.18 |
데일리코딩 ] 배열을 객체로 바꾸기 (0) | 2023.05.17 |
TIL] Unit 2. 객체지향프로그래밍(캡슐화, 추상화, 상속 등) (0) | 2023.05.11 |
TIL] Unit 2. 객체지향프로그래밍(클래스와 인스턴스) (0) | 2023.05.11 |