<그냥하자> JavaScript (30) prototype

.·2024년 8월 2일

출처 : 인프런 얄팍한 코딩사전

MDN 문서

I. 프로토타입 prototype

자바스크립트는 프로토타입 기반의 객체지향 프로그래밍을 지원하는 언어

오늘날에는 클래스가 더 널리 사용되지만, 사용하기에 따라 보다 강력하고 효율적

자바스크립트의 모든 객체는 Prototype을 가짐

II. Object - 모든 것의 조상

  1. Object.getPrototypeOf

수정할 때는 Object.setPrototypeOf 사용
proto 대신 이 기능을 사용할 것

  1. 생성자 함수에서는 prototype으로 프로토타입 접근 가능

즉 function으로 선언된 함수들에서 [[Prototype]]이 두 단계로 있음 확인 (Person - Object)


chat 한테 물어본 인스턴스와 프로토타입 차이점


프로토타입과 상속

MDN 문서

상속은 보통 JavaScript에서 class로 많이 하기 때문에 prototype으로는 잘 사용하지 않는다고 한다.

I. 프로토타입으로 상속하기

Object.create 메서드

주어진 것을 프로토타입으로 갖는 객체를 생성

상속을 먼저 하고 자체 프로토타입 프로퍼티 입력
Object.create... 대신 Bird.prototype 대입 결과 비교 - eagle과 bird 모두 확인

II. 부모의 생성자 활용하기

생성자에서 중복되는 부분 위임
class에서는 constructor에서 super 사용

III. 클래스로 구현

클래스 역시 프로토타입을 기반으로 구현됨

클래스와 프로토타입
클래스의 메서드는 프로토타입으로 들어가게 됨
extends - 프로토타입 상속도를 만듦

run 함수 또는 메서드가 속한 곳 비교
필드는 양쪽 모두 인스턴스에 속함

인스턴스의 클래스/생성자함수 이름 출력
무엇의 인스턴스인지 프로그램상에서 이름으로 파악할 때 유용

IV. Mixin - Object.assign으로 조립하기

상속 - 한 부모로부터만 물려받음
믹스인 - 여럿을 조합하여 가져올 수 있음

profile
해야 되는 일이 하고 싶은 일로

0개의 댓글