Если вы действительно хотите:
- Инициализировать, но пустой массив
MODULES
во время, когда bootstrap()
еще не вызывается, и - Сделать
MODULES
неизменяемый после заполнения и - Оставить текущую сигнатуру функции
registerModules
без изменений;
Тогда вы можете сделать это следующим образом:
function bootstrap() {
Object.freeze(Object.assign(MODULES, registerModules({...})));
// OR:
// MODULES.push(...registerModules({...}));
// Object.freeze(MODULES);
}
Если вы не настаиваете на существовании MODULES
до вызова bootstrap()
, и вы готовы хранить эту информацию внутри объекта, то вы можете действовать следующим образом:
const globals = {};
function bootstrap() {
globals.MODULES = registerModules({...});
Object.freeze(globals.MODULES);
}
Если вы довольны globals
, вы также можете заморозить этот объект:
Object.freeze(globals);