Модульная система
Стандарты
1. Паттерн "Модуль" 2003 год
- Немедленно вызываемая функция, образующая приватную область видимости
2. CommonJS (CJS) 2009 год
3. Asynchronous Module Definition (AMD) 2009 год
define -> require
- Реализация: RequireJS (opens new window)
- Предназначен для асинхронной загрузки. Преимущественно используется на стороне клиента
4. Universal Module Definition (UMD) 2011 год
- Объединение AMD и CommonJS
- Суть подхода: проверить существование функции define и если она есть определить модуль в формате AMD, а если нет, в формате CommonJS
5. Модули ES6 2015 год