도영스 공간
2022.06.12 TIL ( 프로토타입 ) 본문
반응형
🍄 프로토타입의 이해
- 자바스크립트는 클래스라는 개념이 없습니다.
- 그래서 기존의 객체를 복사하여 새로운 객체를 생성하는 프로토타입 기반의 언어입니다.
- 프로토타입 기반 언어는 객체 원형인 프로토타입을 이용하여 새로운 객체를 만들어냅니다.
- 생성된 객체 역시 또 다른 객체의 원형이 될 수 있습니다.
- 프로토타입은 객체를 확장하고 객체 지향적인 프로그래밍을 할 수 있게 해줍니다.
- 프로토타입은 객체를 참조하는 prototype 속성과 객체 멤버인 proto속성이 참조하는 숨은 링크가 있습니다.
상속, 프로토타입 prototype
🍄👩💻 콘솔창에 있는👉__proto__ 이것을 프로토타입이라고 한다.
👩💻 proto 는 생성된 객체(new) 또는 json 객체에 존재한다.
👩💻 즉, 상위 객체를 나타내는 속성이다.
👩💻 prototype(__proto__의 type)은 자바스크립트 생성자함수(클래스)에 속성 또는 메소드를 추가할때 사용하는 속성이다.
👩💻 객체생성시 prototype을 통해 정의된 속성 또는 메소드는 new 를 통해 객체생성시 공유한다.
👩💻 자바스크립트 객체는 Prototype이라는 내부 프로퍼티가 존재한다.
👩💻 거의 모든 객체가 생성 시점에 이 프로퍼티에 null이 아닌 값이 할당된다.
const user={
name:"riri"
}
user.name // "riri"
user.hasOwnProperty('name'); // true
user.hasOwnProperty('age'); // false
함수와 객체의 내부 구조
🍄- 자바스크립트에서는 함수를 정의하고, 파싱단계에 들어가면 내부적으로 수행되는 작업이 있습니다.
- 함수 멤버로 prototype속성이 있습니다.
- 이 속성은 다른 곳에 생성된 함수이름의 프로토타입 객체를 참조합니다.
- 프로토타입 객체 멤버인 constructor속성은 함수를 참조하는 내부 구조를 가집니다.
프로토타입 객체란?
🍄- 함수를 정의하면 다른 곳에 생성되는 프로토타입 객체는 자신이 다른 객체의 원형이 되는 객체입니다.
- 모든 객체는 프로토타입 객체에 접근할 수 있습니다.
- 프로토타입 객체도 동적으로 런타임 멤버를 추가할 수 있습니다.
- 같은 원형을 복사로 생성된 모든 객체는 추가된 멤버를 사용할 수 있습니다.
프로토타입이란?
🍄- 자바스크립트에서 기본 데이터 타입을 제외한 모든 것이 객체입니다.
- 객체가 만들어지기 위해서는 자신을 만드는 데 사용된 원형인 프로토타입 객체를 이용하여 객체를 만듭니다.
- 이때 만들어진 객체 안에 👉__proto__(비표준) 속성이 자신을 만들어낸 원형을 의미하는 프로토타입 객체를 참조하는 숨겨진 링크가 있습니다.
- 이 숨겨진 링크를 프로토타입이라고 합니다.
728x90
반응형
'TIL > 2022 TIL' 카테고리의 다른 글
2022.06.14 TIL ( 이벤트 전파 ) (1) | 2022.06.14 |
---|---|
2022.06.13 TIL ( 브라우저가 렌더링 되는 과정 ) (0) | 2022.06.13 |
[항해99 96일차] 2022.06.10 TIL (항해99 수료 후기 ) (0) | 2022.06.10 |
[항해99 95일차] 2022.06.09 TIL (모의면접 준비 ) (0) | 2022.06.09 |
[항해99 94일차] 2022.06.08 TIL (리액트 왜 사용하시나요 ? ) (0) | 2022.06.08 |
Comments