Разработка приложений на JavaScript: ES6 классы или модули?
В ES6 файл сам по себе является модулем. Для этого и есть default и обычный export. Классы же лучше использовать для описания сущностей, когда нужно наследование и тп.
То есть, если вы в коде используете экземпляры сущностей, созданных на основе данных из API, эти сущности знают о других сущностях, имеют иерархические отношения, должны уметь получать смежные данные - тогда выбор за классами. И то, там ещё надо разбивать на обычные методы и на статические.
А если просто получать какие-то списки, то обычных ES6 модулей хватает за голову. Но акцентирую - ES6 модулей, а не та древняя реализация revealing module из вашего примера.
Есть еще вариант: использовать стандартные JS-объекты.objName= {
__proto__: parentObjName,
metod: function() {...},
param: value
}
Таким образом все методы и параметры, задаваемые в литерале, будут перечисляемыми и изменяемыми. Но есть еще, для создания API, хороший способ добавления свойств / методов такому объекту как неперечисляемых, так и не изменяемых:.Object.defineProperty (objName, 'nameProp', {
value: "enumVal"
})