Когда я впервые начал программировать Javascript после того, как в основном работал с ООП в контексте языков, основанных на классах, я был озадачен тем, почему ООП на основе прототипов когда-либо предпочтительнее ООП на основе классов.
- Каковы структурные преимущества использования ООП на основе прототипа, если таковые имеются? (Например, можем ли мы ожидать, что это будет быстрее или менее интенсивно в некоторых приложениях?)
- Каковы преимущества с точки зрения кодировщика? (Например, проще ли кодировать определенные приложения или расширять код других людей с помощью прототипирования?)
Пожалуйста, не рассматривайте этот вопрос как вопрос о Javascript в частности (в течение многих лет у него было много недостатков, совершенно не связанных с прототипированием). Вместо этого, пожалуйста, посмотрите на это в контексте теоретических преимуществ прототипирования по сравнению с классами.
Спасибо.