Változók és függvények exportálása modulokban closure-ök segítségével JavaScriptben

Időnként szükség van arra, hogy egy modul bizonyos változói és függvényei kívülről is elérhetők legyenek. Nézzük meg, hogyan tehetjük ezt meg. Tegyük fel, hogy a következő modulunk van:

javascript;(function() {
  let str = 'modul változó';
  
  function func() {
    alert('modul függvény');
  }
})();

Exportáljuk ki a func függvényünket. Ehhez írjuk be egy property-be a böngésző beépített window objektumába:

javascript;(function() {
  let str = 'modul változó';
  
  function func() {
    alert('modul függvény');
  }
  
  window.func = func;
})();

Most már meghívhatjuk a függvényünket kívülről a modulból:

javascript;(function() {
  let str = 'modul változó';
  
  function func() {
    alert('modul függvény');
  }
  
  window.func = func;
})();

window.func(); // kiírja 'modul függvény'

Eközben nem kötelező a függvényt mint az window objektum property-jeként meghívni:

javascript;(function() {
  let str = 'modul változó';
  
  function func() {
    alert('modul függvény');
  }
  
  window.func = func;
})();

func(); // kiírja 'modul függvény'
Задание 1

Adott a következő modul:

javascript;(function() {
  let str1 = 'modul változó';
  let str2 = 'modul változó';
  let str3 = 'modul változó';
  
  function func1() {
    alert('modul függvény');
  }
  function func2() {
    alert('modul függvény');
  }
  function func3() {
    alert('modul függvény');
  }
})();

Exportálj ki egy változót és bármelyik két függvényt.