В JavaScript прототипы — это механизмы, с помощью которых объекты могут наследовать свойства других объектов. Это важная часть функциональности объектно-ориентированного программирования (ООП) JavaScript.

Чтобы понять на простом языке, думайте о прототипах в JavaScript как о схеме или руководстве. Каждый объект в JavaScript имеет ссылку на свой объект-прототип, где этот объект-прототип имеет собственный прототип, создавая то, что мы называем цепочкой прототипов.

Когда мы пытаемся получить доступ к свойству или методу объекта, JavaScript сначала проверяет, находится ли это свойство или метод непосредственно в объекте. Если нет, он обращается к прототипу объекта (его чертежу), затем к прототипу прототипа и так далее по цепочке, пока либо не найдет то, что ищет, либо не достигнет конца цепочки (который обычно является базовым прототипом объекта). .

Вот простой пример: давайте представим, что у нас есть автомобильный объект.

let car = {
  make: 'Toyota',
  model: 'Camry'
};

Мы можем создать прототип нашего автомобиля, описывающий возможности всех автомобилей.

let car = {
  make: 'Toyota',
  model: 'Camry'
};

В этом примере startEngine — это метод прототипа нашего автомобиля. Теперь мы можем вызвать этот метод для car, даже если мы не определили его непосредственно для автомобиля:

console.log(car.startEngine());  // Outputs: 'Engine started'

Когда мы вызываем car.startEngine(), JavaScript сначала проверяет, является ли startEngine методом непосредственно в car. Это не так, поэтому JavaScript просматривает прототип автомобиля и находит там startEngine.

Итак, прототипы — это своего рода резервная копия объектов. Если объект не может что-то сделать, он обращается за помощью к своему прототипу.

вы хотите узнать больше об OOps или Prototype заранее

Спасибо за чтение. Я призываю вас следить за мной в Твиттере, где я регулярно делюсь контентом о JavaScript и React, а также вношу свой вклад в проекты с открытым исходным кодом. Сейчас ищу удаленную работу или стажировку.

Твиттер: https://twitter.com/Diwakar_766

GitHub: https://github.com/DIWAKARKASHYAP

Портфолио: https://diwakar-portfolio.vercel.app/

Первоначально опубликовано на https://dev.to 31 июля 2023 г.