Muutujate ja funktsioonide eksportimine moodulites sulundite kaudu JavaScriptis

Mõnikord on vaja teha nii, et mõned mooduli muutujad ja funktsioonid oleksid väljaspool kättesaadavad. Vaatame, kuidas seda tehakse. Olgem meil järgmine moodul:

javascript;(function() {
  let str = 'mooduli muutuja';
  
  function func() {
    alert('mooduli funktsioon');
  }
})();

Eksportigem oma funktsioon func. Selleks kirjutame selle brauserisse sisse ehitatud objekti window omadusse:

javascript;(function() {
  let str = 'mooduli muutuja';
  
  function func() {
    alert('mooduli funktsioon');
  }
  
  window.func = func;
})();

Nüüd saame oma funktsiooni väljaspool moodulit välja kutsuda:

javascript;(function() {
  let str = 'mooduli muutuja';
  
  function func() {
    alert('mooduli funktsioon');
  }
  
  window.func = func;
})();

window.func(); // kuvab 'mooduli funktsioon'

Sel juhul ei pea funktsiooni välja kutsuma kui objekti window omadust:

javascript;(function() {
  let str = 'mooduli muutuja';
  
  function func() {
    alert('mooduli funktsioon');
  }
  
  window.func = func;
})();

func(); // kuvab 'mooduli funktsioon'
Задание 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');
  }
})();

Eksportige väljapoole üks muutujatest ja kaks suvalist funktsiooni.