Паттерн Модуль — это шаблон проектирования, который предоставляет способ инкапсуляции частных членов при создании общедоступного API. Это достигается путем создания IIFE, который позволяет нам определять переменные, доступные только в его области (через замыкание). Одновременно с этим возвращается объект, содержащий общедоступный API. Ниже мы можем увидеть более полный пример модуля, определенного с использованием литеральной записи объекта: Глядя на другой пример, мы видим корзину для покупок, реализованную с использованием этого шаблона. Сам модуль полностью автономен глобальной переменной с именем BasketModule. Массив корзины в модуле хранится закрытым, поэтому другие части нашего приложения не могут его напрямую прочитать. Он существует только при закрытии модуля, поэтому единственные методы, которые могут получить к нему доступ, — это те, у которых есть доступ к его области видимости (т. е. addItem(), getItem() и т. д.). #практика #javascript