Exportación de variables y funciones en módulos mediante closures en JavaScript

A veces es necesario que algunas variables y funciones del módulo estén disponibles desde el exterior. Veamos cómo se hace esto. Supongamos que tenemos el siguiente módulo:

javascript;(function() {
  let str = 'variable del módulo';
  
  function func() {
    alert('función del módulo');
  }
})();

Exportemos nuestra función func. Para ello, la asignaremos como propiedad del objeto global window en el navegador:

javascript;(function() {
  let str = 'variable del módulo';
  
  function func() {
    alert('función del módulo');
  }
  
  window.func = func;
})();

Ahora podemos llamar a nuestra función desde fuera del módulo:

javascript;(function() {
  let str = 'variable del módulo';
  
  function func() {
    alert('función del módulo');
  }
  
  window.func = func;
})();

window.func(); // mostrará 'función del módulo'

Y no es necesario invocar la función como una propiedad del objeto window:

javascript;(function() {
  let str = 'variable del módulo';
  
  function func() {
    alert('función del módulo');
  }
  
  window.func = func;
})();

func(); // mostrará 'función del módulo'
Задание 1

Se da el siguiente módulo:

javascript;(function() {
  let str1 = 'variable del módulo';
  let str2 = 'variable del módulo';
  let str3 = 'variable del módulo';
  
  function func1() {
    alert('función del módulo');
  }
  function func2() {
    alert('función del módulo');
  }
  function func3() {
    alert('función del módulo');
  }
})();

Exporta una de las variables y dos funciones cualesquiera.