일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Bandit Level 6
- java.sql.SQLRecoverableException
- 디미터 법칙
- avax.net.ssl.SSLHandshakeException:
- Bandit Level 6 → Level 7
- 시스템 파악
- was SQLRecoverableException
- springboot
- 스크럼기법
- 에자일 모형
- vue
- 커맨드공부
- OpenAPI
- 인증서만료에러
- table scan
- 폭포수 모형
- 나선형 모형
- mysql 튜닝
- 프로토타입 모형
- Bandit Level 5
- 클린코드
- pl/sql
- CSS
- Law of Demeter
- SQLRecoverableException
- plsql
- was버그
- 시스템 파악 정리
- 변수명 짓는법
- 명령어공부
- Today
- Total
개발햄비
[javaScript] javascript protoType이란 (1) 본문
protoType란
객체 생성의 모체라는 뜻입니다.
protoType 객체에 getType()이라는 함수를 추가하면
다른 사람들을 생성할 때 추가된 사람들도 사용할 수 있습니다.
같은 protoType을 이용한 minsu , hanbi 객체는
getType()을 이용할 수 있습니다.
이와같이 객체 사용하게 되면 person의 프로토타입 객체를 수정하는 것이 아니라 minsu 또는 hanbi 객체를 수정한 것입니다.
minsu는 person의 protoType을 보고 있기 때문에 사람이 나오고 hanbi는 hanbi객체의
getType()을 보고 있기 때문에 "키큰사람"이 출력 됩니다.
이와 마찬가지로 age의 경우도 minsu객체의 age를 바라봐 "30"이 출력되지만
hanbi객체의 경우 person 함수의 protoType에는 age가 존재하지 않기 때문에 undefined가 출력됩니다.
따라서 이를
이와 같이 person.prototype.getType을 다시 "키큰사람"으로 수정해주면
person 함수의 protoType.getType()을 바라보고 있던 minsu객체에서는 다시 " 키큰사람 "이 출력되게 됩니다.
protoType객체는 새로운 객체가 생성되기 위한 원형이 되는 객체 입니다 .
같은 원형으로 생성된 객체가 공통으로 참조하는 공간입니다 .프로토타입 객체의 멤버를 읽는 경우에는 객체 또는 함수의 protoType 속성을 통해 접근할 수 있습니다. 하지만 추가, 수정, 삭제는 함수의 protoType 속성을 통해 접근해야 합니다.
코드의 재사용을 생각하면 떠오르는 것이 java에서는 상속이라는 개념입니다.
클래스 개념이 있는 자바에서는 중복된 코드를 상속받아 코드 재활용이 가능해집니다. 하지만 javaScript에서는
클래스가 없는 protoType 기반 언어이기 때문에 protoType 을 잘 이용하면 코드를 재사용 할 수 있습니다.
참고자료 : http://www.nextree.co.kr/p7323/