Export premenných a funkcií v moduloch pomocou uzávierok v JavaScripte

Niekedy je potrebné, aby boli niektoré premenné a funkcie modulu dostupné zvonku. Pozrime sa, ako sa to robí. Majme nasledujúci modul:

javascript;(function() {
  let str = 'premenná modulu';
  
  function func() {
    alert('funkcia modulu');
  }
})();

Exportujme našu funkciu func. Na to ju zapíšme ako vlastnosť vstavaného objektu window v prehliadači:

javascript;(function() {
  let str = 'premenná modulu';
  
  function func() {
    alert('funkcia modulu');
  }
  
  window.func = func;
})();

Teraz môžeme našu funkciu volať zvonku modulu:

javascript;(function() {
  let str = 'premenná modulu';
  
  function func() {
    alert('funkcia modulu');
  }
  
  window.func = func;
})();

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

Pri tom nemusíme funkciu volať ako vlastnosť objektu window:

javascript;(function() {
  let str = 'premenná modulu';
  
  function func() {
    alert('funkcia modulu');
  }
  
  window.func = func;
})();

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

Daný je nasledujúci modul:

javascript;(function() {
  let str1 = 'premenná modulu';
  let str2 = 'premenná modulu';
  let str3 = 'premenná modulu';
  
  function func1() {
    alert('funkcia modulu');
  }
  function func2() {
    alert('funkcia modulu');
  }
  function func3() {
    alert('funkcia modulu');
  }
})();

Exportujte von jednu z premenných a dve ľubovoľné funkcie.