Что такое прототип?

Слышал, что в отличие от C#, язык JavaScript является динамическим и в его основе лежит понятие прототипа, а не объекта. Всё бы хорошо, но что такое прототип? Чем он отличается от объекта?

Верно говоришь, JS строится на прототипах. Впринципе прототип не сильно то и отличается от классов, которые являются базой в шарпе)

Прототипами называют объекты, у которых другие объекты наледуют какие-то свойства. По этому впринципе наследуемый класс является прототипом) Любой класс вообще может быть прототипом. Так как прототип - это объект, то получается, что любой прототип также имеет свой прототип (все, кроме прототипа по-умолчанию, который стоит на вершине всех проттотипов (типа класса Object в C#)).

Структура прототипов повторяет идею наследования, так что всё что есть у базового прототипа - передаётся всем прототипам-наследникам базового