본문 바로가기

개발일지

Object.prototype 상속과 공유

20180130

날짜 : 2018. 01. 30.(화)

Object.prototype 상속과 공유

들어가기에 앞서

이 포스트는 하단에 있는 링크의 글들을 읽고 정리한 글 입니다. 제 실력이 부족하여 도움이 못 될 경우에는 아래의 링크를 참고해 주시기 바랍니다.

본문

새로나오는 용어

  1. object cloning : 함수 생성시 발생하는 동작, prototype Object를 생성
  2. prototype Object : object cloning의 결과로 나온 객체
  3. __proto__ : 상위의 부모 객체를 가리키는 property
  4. prototype : prototype Object를 가리키는 property
  5. constructor : prototype Object가 가지는 property

개념

  1. 객체 생성 방법으로 리터럴 객체 방식과 new 키워드를 이용한 함수 객체 생성방식, Object 객체를 이용한 방법이 있습니다. 여기서는 함수 객체 생성방식과 관련된 내용을 주로 적습니다. (4번 내용 부터는 공통된 내용 입니다.)

  2. 함수 객체 생성시

    • constructor 자격 부여
    • object cloning을 통한 prototype Object 생성 및 함수객체와 연결 이 이루어 집니다.
  3. prototype Object는

    • __proto__
    • constructor 을 가집니다. new 키워드를 사용하여 객체를 생성시 prototype Object의 constructor를 이용하여 객체를 생성하는 것 입니다.
  4. 기존의 함수 객체는 prototype 이라는 property가 생기면서 prototype Object를 가리킵니다. 그래서 상속을 위해 (함수 객체명).prototype.(property)를 하게 되면 prototype Object에 property가 늘어나게 되고 이를 상속에 이용하는 것 입니다.

  5. 상속은 정확히 말하면 공유의 형태로 제공이 되며 이것이 가능한 것은 객체의 property를 접근할 때 자신의 객체에 없는 경우 __proto__ 를 통하여 이어져 있는 상위 객체를 찾기 때문입니다.

이것을 알아야 하는 이유

  1. constructor와 prototype Object가 생기지 않는 경우 (객체).prototype 접근은 불가능한 접근 입니다.
  2. 공유가 아닌 상속을 하기 위해서는 this 키워드를 이용 해야 합니다.
  3. 공유의 경우 부모 객체에서 내용이 바뀌면 자식에게 모두 영향이 반영 됩니다.

참고한 사이트

  1. bluesh55 블로그
  2. rhio 블로
  3. insanehong 블로그
  4. Nextree 기업블그