자바스크립트 프로토타입
프로토 타입
정의
- 자바스크립트 라이브러리를 뭔가 해보겠다고 하면 깊이 있는 메서드를 찾아봐야한다.
- 일반적인 상속이랑은 다른 개념이다
- 자바스크립트에는 클래스 정의를 사용한 클래스가 없다
- 자바스크립트에서 ‘복사’를 통한 상속은 없다
- 프로토타입 체인을 이용한 속성의 상속은 있다.
- 프로토타입은 클래스, 객체의 내용 복사 없이도 상속을 구현할 수 있게 해주는 방법이다
- 프로토타입은 연결(proto)이다
프로토타입 체이닝
- 특정 객체의 프로퍼티나 메서도에 접근하려고 할 때 객체에 접근하려는 프로퍼티 또는 메소드가 없다면
- __proto__가 가리키는 링크를 따라 자신의 부모 역할을 하는 프로토타입 객체의 프로퍼티나 메소드를 차례대로 검색한다.
- 이러한 상속 관계를 프로토타입 체인이라고 한다.
Prototype Object(프로토타입 객체)
- 모든 함수(function) 객체는 “prototype”이라는 속성을 가진다
- prototype 속성은 해당 함수의 프로토타입 객체를 가리킨다.
Constructor(생성자)
- 프로토타입 객체를 가지고 있는 함수를 생성자라고 한다.
- 생성자를 사용하여 새로운 객체를 생성하면, 해당 객체는 생성자 함수의 프로토타입을 상속한다.
Object.create()
- 자바스크립트에서 객체를 생성하는 데 사용하는 메서드이다
- 지정된 프로토타입을 가진 새로운 객체를 생성한다다.
자바스크립트 동작 방식(class)
- new 연산자가 새로운 빈 객체를 메모리 상에 생성한다
- 생성된 빈 객체가 this에 바인딩 된다
- this 객체의 속성을 채우는 동작이 수행된다
- return 하는 것이 없다면 그렇게 만들어진 this가 return이 된다.
출처
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.