-프로토타입
모든 객체는 각자 부모 역할을 하는 객체를 갖고 있는데, 이 객체를 프로토타입이라고 한다.
객체지향 프로그래밍의 '상속'과 유사하다.
간단하게 객체를 만들어서 출력해보았다.
책이 옛날 책이라 그런지, 책 내용과는 달리 크롬에서도 __proto__ 가 아니라 [[Prototype]] 프로퍼티가 보인다.
ECMAScript 명세서에 의하면, 모든 자바스크립트 객체는 자신의 프로토타입 객체를 가리키는 [[Prototype]] 프로퍼티를 가진다.
이 프로토타입 객체의 종류는 여러가지가 있는데,
어떤 종류의 객체를 프로토타입으로 가질지는 사바스크립트 룰에 따라 객체를 생성할 때 결정된다.
예시와 같이 객체 리터럴로 생성한 객체는 Object.prototype 객체를 프로토타입 객체로 가진다.
근데 한번 궁금해서 [[Prototype]] 프로퍼티를 펼쳐보았더니 다음과 같이 되어있었다.
여기에는 진짜로 책에 설명한것처럼 __proto__ 프로퍼티가 있었다..
무슨 차이인지는 아직 모르겠다. 책 이미지에서는 저 [[Prototype]] 자리에 __proto__ 특성이 있긴 했었는데..
책에서 '크롬의 경우' 라고 했다보니 다른 브라우저는 어떤지 보고 싶었는데, 당장은 크롬 개발자 도구를 보는게 최선이라 아쉽다.
또한 객체를 생성할 때 지정된 프로토타입 객체는 사용자가 임의로 바꿀 수 있다.
자바스크립트에서는 이를 이용해 객체지향의 상속 개념을 구현할 수 있다.
음... 안되는데요...?
undefined라 안된건가 싶어서 임의 객체를 생성해서 연결해보았다.
음... 뒤에 6장에서 프로토타입을 이용한 상속을 다룬다고 하니 그때 다시 책을 읽고 해봐야겠다 ㅋㅋㅋㅋ
아무래도 이렇게 하는건 아닌가보다.
개념을 설명하는 파트다보니, 이 정도에서 프로토타입 내용이 끝났다.
다음으로는 배열에 대해 다룰 차례이다.
'독서 > Inside Javascript' 카테고리의 다른 글
[Inside Javascript] 6. 기본타입과 표준메서드, 연산자 (0) | 2022.06.12 |
---|---|
[Inside Javascript] 5. 배열 (2) | 2022.05.09 |
[Inside Javascript] 3. 자바스크립트의 객체 (0) | 2022.03.26 |
[Inside Javascript] 2. 자바스크립트의 데이터타입 (0) | 2022.03.25 |
[Inside Javascript] 1. 자바스크립트의 핵심 개념 (0) | 2022.03.21 |