Сообщения

Сообщения за сентябрь, 2019

Прототипы

Изображение
Прототипы в JavaScript существовали с самого момента его создания. Идея прототипов следующая. Представим, что у нас есть несколько видов животных, у каждого из которых есть функция say(), которая воспроизводит голос этого животного. Но, если разные объекты имеют одну и ту же функцию, есть ли смысл хранить её внутри каждого такого объекта? Или лучше создать общий для них родительский объект, поместить в него данную функцию и дать остальным объектам доступ к ней? Этот родительский объект, хранящий функции всех его потомков, называется прототипом. Правило обращения к методам прототипа следующее. Вначале js-движок ищет функцию внутри самого объекта, если не находит - ищет в его прототипе. Но прототип - тоже объект и у него есть собственный прототип. Таким образом js-движок в поисках вызванной функции проходит по всей цепочке прототипов Перейдём от теории к коду. Вначале напишем код  животных, у каждого из которых есть функция say() Прототипов пока нет const dog = {