Javascript - prototype

Jinsung·2021년 10월 4일
0

javascript

목록 보기
11/11
post-thumbnail

1. 프로토타입

자바스크립트의 모든 객체는 자신의 부모 객체와 연결되어 있습니다.
좀더 정확히 말하자면 부모 객체의 원형(부모 객체의 프로토타입)
객체 지향에서의 상속 개념처럼 부모 객체의 프로퍼티나 메소드를 상속 받아 쓸 수 있습니다.
실제로는 상속 보다 위임에 가깝지만 통상적으로 상속으로 표현합니다.
부모 객체를 프로토타입 객체, 혹은 프로토타입이라고 부릅니다.
그리고 부모 객체를 참조하는 걸 프로토타입 링크라고 합니다.

2. 프로토타입 예시

// animal 객체 생성
let animal = {
	leg: 4,
	legCount() {
		console.log(this.leg); // this는 animal을 의미합니다.
	}	
};

// 또 다른 객체 cat
// animal을 프로토타입 상속 받아올 거예요. (__proto__를 씁니다.)
let cat = {
	__proto__:animal, // cat의 프로토타입은 animal!
	cute: true,
};

// 프로토타입을 설정해주어서 cat은 animal의 메소드와 프로퍼티를 사용할 수 있어요.
cat.legCount();
console.log(cat.leg);

// cat만 가지고 있는 프로퍼티도 있고요!
console.log(cat.cute);
// animal은 cat의 속성을 가져올 수 없어요!
console.log(animal.cute);

__proto__ 를 써서 접근하는 방식은 구식 방식으로 현재는 deprecated 되어있지만 누군가에게 설명하거나 면접자리에서는 아직 나오는 단어들이기 때문에 직접 접근하는 방식을 알아두는 편이 좋습니다.
가급적 Object.getPrototypeOf()를 이용하여 참조하고, 프로토타입 체인에 연결하는 Object.create()를 이용하여 연결합시다.

0개의 댓글