자바스크립트는 프로토타입 기반의 객체지향 프로그래밍을 지원한다.
클래스라는 개념이 없고, 대신에 객체 리터럴과 생성자 함수로 객체를 생성한다.
이렇게 생성된 객체의 부모 객체가 프로토타입 객체다.
상속 개념과 마찬가지로 자식 객체는 부모 객체가 가진 프로퍼티 접근이나 메서드를 상속받아 호출하는 것이 가능하다.
[[Prototype]]
모든 객체는 자신의 부모인 프로토타입 객체를 가리키는 참조 링크 형태의 숨겨진 프로퍼티가 있다.
자바스크립트에서는 이러한 링크를 프로토타입 링크라고 부르며 이러한 링크는 모든 객체의 [[prototype]] 프로퍼티에 저장된다.
구글 크롬 브라우저에서는 __proto__로 구현한다.
// Blog 생성자 함수
function Blog(name) {
this.name = name;
}
// a 객체 생성
var a = new Blog('oppa');
console.dir(Blog);
console.dir(a);
- 주의점!
함수 객체의 프로토타입 프로퍼티와
객체의 숨은 프로퍼티인 [[Prototype]](=프로토타입 링크)을 혼동하며 안된다.
자바스크립트에서 모든 객체는 자신을 생성한 생성자 함수의 prototype 프로퍼티가 가리키는 프로토타입 객체를
자신의 부모 객체로 설정하는 [[Prototype]] 링크로 연결한다.
by 소년코딩
추천은 글쓴이에게 큰 도움이 됩니다.
악플보다 무서운 무플, 댓글은 블로그 운영에 큰 힘이됩니다.