Export proměnných a funkcí v modulech pomocí uzávěrů v JavaScriptu

Někdy je potřeba, aby některé proměnné a funkce modulu byly dostupné zvenčí. Podívejme se, jak se to dělá. Předpokládejme, že máme následující modul:

javascript;(function() {
  let str = 'proměnná modulu';
  
  function func() {
    alert('funkce modulu');
  }
})();

Exportujme naši funkci func. Pro tento účel ji uložíme jako vlastnost vestavěného objektu window v prohlížeči:

javascript;(function() {
  let str = 'proměnná modulu';
  
  function func() {
    alert('funkce modulu');
  }
  
  window.func = func;
})();

Nyní můžeme naši funkci volat zvenčí modulu:

javascript;(function() {
  let str = 'proměnná modulu';
  
  function func() {
    alert('funkce modulu');
  }
  
  window.func = func;
})();

window.func(); // vypíše 'funkce modulu'

Při tom nemusíme funkci volat jako vlastnost objektu window:

javascript;(function() {
  let str = 'proměnná modulu';
  
  function func() {
    alert('funkce modulu');
  }
  
  window.func = func;
})();

func(); // vypíše 'funkce modulu'
Задание 1

Je dán následující modul:

javascript;(function() {
  let str1 = 'proměnná modulu';
  let str2 = 'proměnná modulu';
  let str3 = 'proměnná modulu';
  
  function func1() {
    alert('funkce modulu');
  }
  function func2() {
    alert('funkce modulu');
  }
  function func3() {
    alert('funkce modulu');
  }
})();

Exportujte ven jednu z proměnných a dvě libovolné funkce.