Ответ
Вместо модулей можно использовать:
- Функции - инкапсулируют логику и могут быть переиспользованы
function calculateTotal(price, tax) {
return price + (price * tax);
}- Классы - группируют связанную логику и состояние
class Calculator {
add(a, b) { return a + b; }
}- Объекты - простой способ группировки
const utils = {
formatDate(date) { /* ... */ }
};- IIFE (Immediately Invoked Function Expression) - изолирует область видимости
const counter = (function() {
let count = 0;
return { increment() { count++ } };
})();- Миксины/Примеси - через Object.assign или spread оператор
const loggerMixin = {
log(msg) { console.log(msg); }
};- Замыкания - для инкапсуляции приватных данных
Выбор зависит от конкретного случая и требований к изоляции, переиспользованию и организации кода.