Launder,
Синтаксис модулей и классов был принят в стандарт JS в 2015 году. До этого как-то без них 20 лет жили.
Классы в основном просто более удобный синтаксис для функций-конструкторов -
From constructors to classes.
Модули - порождение развития сторонних модульных систем -
From CommonJS modules to ES6 modules.
Функции-конструкторы тоже обзывают классами. Не стоит от JS ожидать полноценного класса C++. Приватные свойства приняты в 2019-м. До этого как-то без них 30 лет жили. Бог знает, что нам еще предстоит испытать...
Классы - это свои типы данных. Модули - организация проекта.