Контекст используется для обеспечения обмена данными между различными компонентами (абстракциями, модулями, слоями), не имеющими общего окружения, без лишнего связывания.
Примеры:
- 1-closure.js — Контекст с замыканием: Частично применяемая функция с привязанным контекстом; простой RBAC и аутентификация пользователя
- 2-oop.js — Контекст в ООП: Контекст передается в конструктор; RBAC, User и AccountService как классы
- 3-factory.js — Фабрика контекста: Фабрика создает сервисы с общим контекстом; внедрение зависимостей
- 4-pipeline.js — Контекст в конвейере промежуточного ПО: Асинхронный конвейер с распространением контекста; трассировка и идентификаторы запросов
- 5-async.js — Асинхронный контекст (AsyncLocalStorage): Контекст сохраняется между асинхронными границами без явной передачи
- 6-immutable.js — Неизменяемый контекст: Замороженный контекст и производные контексты с помощью вспомогательных функций; без мутаций
👉 https://github.com/HowProgrammingWorks/Context