Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 크롬웹
- html 끝
- 나도코딩
- :root
- li 태그
- 나도코딩 파이썬
- 백준 정리
- 코딩테스트
- 노마드 코더
- max-width
- button:focus cursor: pointer; outline: none;
- HTML
- 생활코딩
- calc()
- git 버전관리
- Pull
- 백준
- border radius
- 드림코딩
- 생활코딩 WEB2-JavaScript
- 라매개발자
- nav태그
- 할만한데?
- git
- margin 0 auto
- WEB2-JavaScript
- 단계별로 풀어보기
- error: ENOENT: no such file or directory
- box-sizing: border-box
- 백준 자바스크립트
Archives
- Today
- Total
코딩응애의 개발블로그
코드스테이츠 블로깅(프로토타입 체인) 본문
객체 지향 프로그래밍의 특성 중 상속을 JavaScript에서 구현할 때에는 프로토타입 체인을 사용한다.
JavaScript는 흔히 프로토타입 기반 언어(prototype-based language)라 불립니다.
모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미.
프로토타입 객체도 또 다시 상위 프로토타입 객체로부터 메소드와 속성을 상속 받을 수도 있고 그 상위 프로토타입 객체도 마찬가지입니다. 이를 프로토타입 체인(prototype chain)이라고 한다.
DOM과 프로토타입
브라우저에서 DOM을 이용하면, document.createElement('div')로 새로운 div 엘리먼트를 만들 수 있습니다.
이렇게 생성된 div 엘리먼트는, HTMLDivElement라는 클래스의 인스턴스입니다
인스턴스에 __proto__를 이용하면 부모 클래스의 프로토타입, 혹은 '부모의 부모 클래스'의 프로토타입을 탐색할 수 있습니다.
let div = document.createElement('div');
div.__proto__ // HTMLDivElement
div.__proto__.__proto__ // HTMLElement
div.__proto__.__proto__.__proto__ // Element
div.__proto__.__proto__.__proto__.__proto__ // Node
div.__proto__.__proto__.__proto__.__proto__.__proto__ // EventTarget
div.__proto__.__proto__.__proto__.__proto__.__proto__.__proto__ // object
div.__proto__.__proto__.__proto__.__proto__.__proto__.__proto__.__proto__ // null
EventTarget의 부모로는, 모든 클래스의 조상인 Object가 존재합니다.
null은 더 이상의 프로토타입이 없다고 정의되며, 프로토타입 체인의 종점 역할을 한다.
'코드스테이츠(부트캠프)' 카테고리의 다른 글
코플릿 문제 풀면서 알게된 것들 - 배열안에 특정 값 제거 (0) | 2022.08.04 |
---|---|
코플릿 문제 풀면서 알게된 것들 - replace() (0) | 2022.08.01 |
코드스테이츠 블로깅 (클래스와 인스턴스 , 객체지향 프로그래밍, 프로토타입과 클래스) (0) | 2022.07.22 |
코드스테이츠 (S2U1 [JavaScript] 고차함수) (0) | 2022.07.21 |
코드스테이츠 Section 1 회고 (feat.벌써 한달?) (0) | 2022.07.20 |
Comments