Модули больше похожи на пакеты (если использовать термин Java), чем на классы. Вы не создаете экземпляр модуля; есть только одна копия этого. Это инструмент для организации связанных функций, но он обычно не инкапсулирует данные конкретного экземпляра объекта.
Вероятно, ближайший аналог класса (за исключением тех библиотек, которые фактически создают наследование на основе классов в JavaScript) - это просто функция конструктора. Конечно, вы можете поместить такие функции в модуль.
function Car() {
this.colour = 'red';
}
Car.prototype.getColour = function() { return this.colour; };
var myCar = new Car();
myCar.getColour(); // returns 'red'
Вы используете как модули, так и классы для инкапсуляции, но природа этой инкапсуляции другая.