프로토타입

이유정·2022년 9월 22일
0

코드스테이츠 TIL

목록 보기
21/62
post-thumbnail

프로토타입

자바스크립트는 프로토타입 기반 객체지향 프로그래밍 언어다.
클래스 없이도 객체를 생성할 수 있다.
자바스크립트의 모든 객체는 자신의 부모 역할을 하는 객체와 연결되어 있다.
객체 지향의 상속 개념과 같이 부모 객체의 프로포티, 메소드를 상속받아 사용 가능하다.
이때의 부모 객체를 prototype객체 줄여서, prototype 이라 한다.

즉, 프로토타입은 원형(유전자)라는 뜻이다.
함수 객체에는 프로토타입이라는 특수한 유형의 객체 프로퍼티가 존재한다.
이러한 prototye 프로퍼티를 통해 생성자 함수는 인스턴스에게 프로토타입 객체에 있는 데이터, 메소드를 상속한다.

prototype객체는 생성자 함수에 의해 생성된 각각의 객체에 공유 프로퍼티를 제공하기 위해 사용한다.

.prototype

내가 원형일 때 존재한다.
함수 객체만 가지고 있다.

따라서,
arr = [1,2,3] 일때
Array.prototype 은 [constructor: ƒ, at: ƒ, concat: ƒ, copyWithin: ƒ, fill: ƒ, …] 이렇게 나오고 왜냐하면 Array는 원형이니까
arr.prototype은 undefined 이렇게 나온다.

.proto

모든 객체가 가지고 있다.
하나의 link로 표현

위의, arr.prototype은 undefined 였고,
arr.proto는 [constructor: ƒ, at: ƒ, concat: ƒ, copyWithin: ƒ, fill: ƒ, …] 값이 나온다.
그러니까proto로 prototype 객체의 값에 접근할 수 있음을 알 수 있다.

클래스, 인스턴스, 프로토타입의 관계

다른 내용을 참조해도, 아직 잘 모르겠음

profile
팀에 기여하고, 개발자 생태계에 기여하는 엔지니어로

0개의 댓글