일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 주식
- 알고리즘 공부
- 서평
- 책을알려주는남자
- algorithmStudy
- 지혜를가진흑곰
- 자바스크립트
- 독후감
- 재테크
- algorithmtraining
- 책알남
- C
- 프로그래머스 알고리즘 공부
- 화장품
- 독서
- 경제
- 알고리즘트레이닝
- 성분
- Java
- 돈
- JavaScript
- 프로그래밍언어
- C++
- 백준알고리즘
- 투자
- 채권
- algorithmTest
- 다독
- 알고리즘공부
- 자바
- Today
- Total
탁월함은 어떻게 나오는가?
프로토타입(Protorype) 이란? 본문
자바스크립트는 동적인 언어라는 점에서 클래스가 없으며, 흔히 프로토타입 기반 언어(prototype-based language)라고 불린다. (ES2015부터 class 키워드를 지원하기 시작했으나, 문법적인 양념일 뿐이며 자바스크립트는 여전히 프로토타입 기반의 언어이다.)
상속 관점에서 자바스크립트의 유일한 생성자는 객체뿐이다. 각각의 객체는 [[Prototype]]이라는 은닉(private) 속성을 가지는데 자신의 프로토타입이 되는 다른 객체를 가리킨다. 그 객체의 프로토타입 또한 프로토타입을 가지고 있고 이것이 반복된다. 결국 null을 프로토타입으로 가지는 오브젝트에서 끝이난다. null은 더이상 프로토타입이 없다고 정의되며, 프로토타입 체인의 종점 역할을 한다.
모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미이다. 위에서 언급한 것과 마찬가지로 프로토타입 객체도 또 다시 상위 프로토타입 객체로부터 메소드와 속성을 상속 받을 수도 있고 그 상위 프로토타입 객체도 마찬가지이다. 이를 프로토 타입 체인(prototype chain)이라 부르며 다른 객체에 정의된 메소드와 속성을 한 객체에서 사용할 수 있도록 하는 근간입니다.
종종 이러한 점이 JS의 약점이라고 지적되지만, 프로토타입적 상속 모델은 사실 고전적인 방법보다 좀 더 강력한 방법이다. 그말은, 프로토타입적 모데렝서 고전적인 방식을 구현하는 건 사소한 일이지만, 그 반대는 어려운 일이기 때문이다.
'[Snow-ball]프로그래밍(컴퓨터) > 자바스크립트(JavaScript)' 카테고리의 다른 글
React-Redux : TypeError: delReviewItem is not a function 에러 (0) | 2021.04.24 |
---|---|
동기적(Synchronous) vs 비동기적(Asynchronous) (0) | 2021.04.04 |
[Q2] 홈페이지 게시판 만들다가 list.html > list1.html로 수정했다가 연결이 끊기는 현상 (0) | 2021.02.21 |
[JAVASCRIPT] Promis(프로마이스), 비동기, 동기, 콜백, Async/Await (0) | 2021.02.05 |
[JAVASCRIPT] MAP TEST(맵 테스트) (0) | 2021.02.03 |