Objekti eksportimine sulundite kaudu JavaScripti moodulites

Oletame, et meil on järgmine moodul:

javascript;(function() {
  function func1() {
    alert('mooduli funktsioon');
  }
  function func2() {
    alert('mooduli funktsioon');
  }
  function func3() {
    alert('mooduli funktsioon');
  }
})();

Oletame, et tahame eksportida kõik kolm funktsiooni väljapoole. Sel juhul, et mitte tekitada mooduli väljapoole liigseid funktsioonide nimesid, on parem kirjutada kõik funktsioonid ühte objekti ja teha selle objekti eksport:

javascript;(function() {
  function func1() {
    alert('mooduli funktsioon');
  }
  function func2() {
    alert('mooduli funktsioon');
  }
  function func3() {
    alert('mooduli funktsioon');
  }
  
  window.module = {func1: func1, func2: func2, func3: func3};
})();

Kuna võtmete ja muutujate nimed langevad kokku, saab funktsioonide objekti lihtsustada:

javascript;(function() {
  function func1() {
    alert('mooduli funktsioon');
  }
  function func2() {
    alert('mooduli funktsioon');
  }
  function func3() {
    alert('mooduli funktsioon');
  }
  
  window.module = {func1, func2, func3};
})();

Võib minna ka teist teed. Kirjutame funktsioonid objekti kohe funktsiooni kirjeldamisel, niimoodi:

javascript;(function() {
  let module = {};
  
  module.func1 = function() {
    alert('mooduli funktsioon');
  }
  module.func2 = function() {
    alert('mooduli funktsioon');
  }
  module.func3 = function() {
    alert('mooduli funktsioon');
  }
  
  window.module = module;
})();
Задание 1

Antud on järgmine moodul:

javascript;(function() {
  let str1 = 'mooduli muutuja';
  let str2 = 'mooduli muutuja';
  let str3 = 'mooduli muutuja';
  
  function func1() {
    alert('mooduli funktsioon');
  }
  function func2() {
    alert('mooduli funktsioon');
  }
  function func3() {
    alert('mooduli funktsioon');
  }
  function func4() {
    alert('mooduli funktsioon');
  }
  function func5() {
    alert('mooduli funktsioon');
  }
})();

Eksportige väljapoole objekt, mis sisaldab esimest viit funktsiooni ja kahte esimest muutujat.