Eksportering av variabler og funksjoner i moduler via closures i JavaScript

Noen ganger er det nødvendig å gjøre at visse variabler og funksjoner i en modul er tilgjengelige utefra. La oss se på hvordan dette gjøres. La oss si at vi har følgende modul:

javascript;(function() {
  let str = 'modulvariabel';
  
  function func() {
    alert('modulfunksjon');
  }
})();

La oss eksportere funksjonen vår func. For å gjøre dette, skriver vi den til en egenskap i det innebygde browserobjektet window:

javascript;(function() {
  let str = 'modulvariabel';
  
  function func() {
    alert('modulfunksjon');
  }
  
  window.func = func;
})();

Nå kan vi kalle funksjonen vår utenfra modulen:

javascript;(function() {
  let str = 'modulvariabel';
  
  function func() {
    alert('modulfunksjon');
  }
  
  window.func = func;
})();

window.func(); // vil vise 'modulfunksjon'

Det er ikke nødvendig å kalle funksjonen som en egenskap av objektet window:

javascript;(function() {
  let str = 'modulvariabel';
  
  function func() {
    alert('modulfunksjon');
  }
  
  window.func = func;
})();

func(); // vil vise 'modulfunksjon'
Задание 1

Følgende modul er gitt:

javascript;(function() {
  let str1 = 'modulvariabel';
  let str2 = 'modulvariabel';
  let str3 = 'modulvariabel';
  
  function func1() {
    alert('modulfunksjon');
  }
  function func2() {
    alert('modulfunksjon');
  }
  function func3() {
    alert('modulfunksjon');
  }
})();

Eksporter én av variablene og to valgfrie funksjoner ut.