본문 바로가기

Programming/Javascript

객체 - 프로토타입(Prototype)

1. 프로토타입(Prototype)

 

1-1. 프로토타입(Prototype)이란?

: 프로토타입은 원형이라는 뜻으로 객체의 프로토타입(원형)을 가지고 새로운 객체를 생성해가는 프로그래밍 방식이다.

함수 객체에는 프로토타입이라는 특수한 유형의 객체 프로퍼티(속성)가 존재한다.

이러한 prototype의 프로퍼티를 통해 생성자 함수는 인스턴스에게 프로토타입 객체에 있는 데이터 메소드를 상속한다.

Prototype 객체는 new 연산자에 의해서 생성된 객체들에게 공유된 프로퍼티, 메서드 등을 제공하기 위해서 사용된다.

 

자바스크립트는 프로토타입 기반의 언어로 기존에는 클래스(Class)가 존재하지 않았기때문에 객체의 원형인 프로토타입을 아용하여 객체의 확장과 재사용, 상속등을 구현했다.

 

const fruit = {name: 'apple'};
console.log(fruit.name); // apple

// 속성 추가
fruit.expiration = '20251231';
consol.log(fruit.expiration); // 20251231

 

1-2. prototype과 __proto__

1. prototype

- 내가 원형일 때 존재한다.

- 함수 객체만 가지고 있다.

- 내가 생성자를 가지는 원형으로 선언 가능하다.

 

2.  __proto__

- 나의 원형을 가리킨다.

- 모든 객체가 가지고 있다.

 

※참고 - hasOwnProperty() 메서드

: 특정 속성이 존재하는지 체크할 수 있는 메서드

console.log(fruit.hasOwnProperty('expiration')); // true
console.log(fruit.hasOwnProperty('country'));	 // false

 

'Programming > Javascript' 카테고리의 다른 글

ES6 심볼(Symbol) 타입  (0) 2022.06.23
ES6 set() 반복  (0) 2022.06.22
Javascript - ES6 set() 자료구조  (0) 2022.06.22