Привет, друзья! Часто слышу высказывания, что «классы в JS используют те, кто не понимают прототипы». И каждый раз меня это высказывание ставит в ступор, т. к. класс – это просто удобный синтаксический сахар для описания типа создаваемого объекта. Классы имеют хорошую декларативность и статичность, что в итоге позволяет нашим редакторам кода сделать лучше автокомплит и статический анализ. Можно сказать, что классы – это чисто design time структура, хотя конечно это будет не в полной мере верно, т. к. у нас есть механизм интроспекции и мы в runtime может проверить любой объект на принадлежность тому или иному классу. То, во что классы в конечном счете преобразуются – зависит от конечного языка и вот в JS – это действительно просто синтаксических сахар над давно известными нам функциями-конструкторами и прототипами. И как человек, который начинал свой путь в JS c ES3 и помнящий, как много тогда было библиотек, которые позволяли нам создавать свои «классы», я был очень обрадован тем фактом, что в ES6 нам дали родной синтаксис. А что с теми библиотеками? Да они просто вымерли за ненадобностью. И слава Богу. Ну а если вы до сих пор избегаете классов и ООП в JS, то это скорее в минус вам и вашему коду.