22.02.21(월) 프로토타입

luckygamza·2022년 2월 21일
0

TIL

목록 보기
5/21
  • 프로토타입
    • 프로토타입 객체
      • 프로토타입 객체란?
      • 어떤 객체의 부모 객체 역할을 하는 객체이다.
      • 자식 객체는 부모 객체의 프로퍼티를 사용할 수 있다.
      • 모든 객체는 하나의 프로토타입을 갖는다.
    • 프로토타입과 생성자 함수
      모든 프로토타입은 생성자 함수와 연결되어 있다.
      다시말해, 프로토타입과 생성자함수는 단독으로 존재할 수 없고 언제나 쌍으로 존재한다.
    • proto” 접근자 프로퍼티
      모든 객체는 “proto” 접근자 프로퍼티를 통해 자신의 프토토타입, 즉 [[Prototype]] 내부 슬롯에 간접접근 할수 있다. (직접접근을 막는 이유는 상호참조에 의해 무한 루프를 도는 프로토타입 체인이 생성되는 것을 막기 위함이다.) “proto”접근자 프로퍼티는 객체가 직접 소유하는 프로퍼티가 아니라 Object.prototype의 프로퍼티이다.
    • 함수객체만이 소유하는 prototype 프로퍼티
      • prototype 프로퍼티는 생성자 함수가 생성할 객체(인스턴스)의 프로토타입을 가리킨다.
      • 화살표 함수와 ES6 메소드 축약 표현으로 정의한 메소드는 prototype 프로퍼티가 없다.
    • 프로토타입의 constructor 프로퍼티와 생성자 함수
      모든 프로토타입은 constructor를 갖는다. 이 constructor 프로퍼티는 prototype 프로퍼티로 자신을 참조하고 있는 생성자 함수를 가리킨다. 이 연결은 생성자 함수가 생성될때, 즉 함수 객체가 생성될 때 이뤄진다.- 프로토타입 체인
      상속을 구현하는 메커니즘이다.
      자바스크립트는 해당 객체의 프로퍼티에 접근하려고 할때, 해당 객체에 접근하려는 프로퍼티가 없다면 [[Prototype]] 내부 슬롯의 참조를 따라 부모 프로토타입의 프로퍼티를 순차적으로 검색한다. 이를 프로토타입 체인이라 한다.
  • 객체의 생성방식
    1. 객체 리터럴
    2. Object 생성자 함수
    3. 생성자 함수
    4. Object.create 메소드
    5. 클래스(ES6)

0개의 댓글

관련 채용 정보