RUDE

[JavaScript] Прототипы

CoderStudio, 16.03.2023 11:57
[JavaScript] Прототипы

О прототипах и наследовании

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