Передача параметров в модули ES в JavaScript

Давайте посмотрим, как передавать параметры при импорте модулей ES. Пусть для примера у нас есть вот такой модуль:

export function func1() { } export function func2() { }

Давайте импортируем его:

import test from './test.js';

Пусть мы хотим передать какие-то данные вовнутрь модуля при его подключении:

let data = 'abcde'; // эти данные хотим передать import test from './test.js';

Обернем код нашего модуля в функцию:

export default function(data) { function func1() { } function func2() { } return {func1, func2}; }

Передадим данные параметром при вызове импортированной функции:

let data = 'abcde'; import func from './test.js'; let test = func(data);

Можем теперь вызвать функции нашего модуля:

test.func1(); test.func2();

К сожалению, упростить код, избавившись от переменной func, подобно тому, как мы это делали для модулей CommonJS, не получится.