여전히 엉망진창 청소!
원기
JavaScript의 모든 개체에는 ((Prototype))이라는 내부 슬롯이 있습니다. ((Prototype))의 값은 null이거나 객체이며 상속을 구현하는 데 사용됩니다. ((Prototype)) 개체의 데이터 속성은 Get 액세스를 위해 상속되며 자식 개체의 속성처럼 사용할 수 있습니다. 단, 설정 접근은 허용하지 않습니다. ((Prototype))의 값은 __proto__ 접근자 속성을 통해 액세스할 수 있는 Prototype 개체입니다. __proto__ 속성에 액세스할 때 내부적으로 Object.getPrototypeOf가 호출되어 프로토타입 객체를 반환합니다. 학생 개체는 __proto__ 속성을 가진 상위 개체(프로토타입 개체) Object.prototype을 가리킵니다.
JavaScript의 모든 개체는 부모 역할을 하는 개체와 연결됩니다. 그리고 그것은 객체 지향 상속의 개념처럼 부모 객체의 속성이나 메소드를 상속하고 사용할 수 있게 합니다. 이 상위 객체 프로토타입 객체 또는 줄여서 프로토타입이라고 합니다.
프로토타입 객체는 생성자 함수에 의해 생성된 각 객체에 대한 공통 속성을 제공하는 데 사용됩니다.
프로토타입 객체에는 생성자 속성이 있습니다. 이 생성자 속성은 개체의 관점에서 생성한 개체를 가리킵니다.
foo가 Person() 생성자 함수에 의해 생성된 객체라고 가정합니다. 이 foo 객체를 생성한 객체는 Person() 생성자 함수입니다. 이때 foo 객체의 관점에서 자신을 생성한 객체는 생성자 함수 Person()이고 foo 객체의 프로토타입 객체는 Person.prototype이다. 따라서 프로토타입 객체 Person.prototype의 생성자 속성은 생성자 함수 Person()을 가리킵니다.
프로토타입 기반 OOP
개별 인스턴스(개체) 수준에서 메서드와 변수를 추가할 수 있습니다.
인스턴스 생성은 복사를 통해 이루어집니다.
인스턴스에 없는 속성은 프로토타입 체인을 통해 참조됩니다.
수업
.
https://medium.com/@limsungmook/ JavaScript-choose-prototype-997f985adb42를 선택한 이유