В 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 г.