О прототипах и наследовании
JavaScript - это основанный на прототипах язык объектно-ориентированного программирования с возможностями объектно-ориентированного программирования.
Прототипы используются для реализации наследования между объектами, что является фундаментальным аспектом объектно-ориентированного программирования.
Каждый объект имеет единственный прототип. =Когда создается объект, его прототип определяется способом создания объекта и хранится в [[Prototype]]. Объект-прототип также может наследовать методы и свойства от своего родительского объекта-прототипа. Это называется цепочкой прототипов и является основой для того, чтобы сделать методы и свойства, определенные в других объектах, доступными для одного объекта.
JavaScript реализует наследование на основе прототипов. Наследование устраняет ненужное дублирование.
//생성자함수 function Circle(radius) { this.radius = radius; } //인스턴스 생성 const circle1 = new Circle(1); const circle2 = new Circle(2); // Circle 생성자 함수가 생성하는 모든 인스턴스는 하나의 getArea 메서드를 공유 console.info(circlw1.getArea === circle2.getArea); // => true
Каждый объект имеет косвенный доступ к своему прототипу, [[Prototype]] внутреннему слоту косвенно.
Ссылка : mdn, ModernJavascript Deep Dive, глава 19