Что можно использовать вместо модулей для повторения той же логики

Ответ

Вместо модулей можно использовать:

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

Выбор зависит от конкретного случая и требований к изоляции, переиспользованию и организации кода.