Експорт на променливи и функции во модулите преку затворања во JavaScript

Понекогаш треба да направиме некои променливи и функции на модулот да бидат достапни надвор. Ајде да погледнеме како се прави ова. Нека имаме следниов модул:

javascript;(function() {
  let str = 'променлива на модулот';
  
  function func() {
    alert('функција на модулот');
  }
})();

Ајде да ја експортираме нашата функција func. За ова ќе ја запишеме во својство на вградениот во браузерот објект window:

javascript;(function() {
  let str = 'променлива на модулот';
  
  function func() {
    alert('функција на модулот');
  }
  
  window.func = func;
})();

Сега можеме да ја повикаме нашата функција однадвор на модулот:

javascript;(function() {
  let str = 'променлива на модулот';
  
  function func() {
    alert('функција на модулот');
  }
  
  window.func = func;
})();

window.func(); // ќе испише 'функција на модулот'

При тоа не е задолжително да се повикува функцијата како својство на објектот window:

javascript;(function() {
  let str = 'променлива на модулот';
  
  function func() {
    alert('функција на модулот');
  }
  
  window.func = func;
})();

func(); // ќе испише 'функција на модулот'
Задание 1

Даден е следниов модул:

javascript;(function() {
  let str1 = 'променлива на модулот';
  let str2 = 'променлива на модулот';
  let str3 = 'променлива на модулот';
  
  function func1() {
    alert('функција на модулот');
  }
  function func2() {
    alert('функција на модулот');
  }
  function func3() {
    alert('функција на модулот');
  }
})();

Експортирајте ја надвор една од променливите и две какви било функции.