Eksport af variabler og funktioner i moduler via closures i JavaScript

Sommetider er det nødvendigt at gøre det sådan, at visse variabler og funktioner i modulet er tilgængelige udefra. Lad os se på, hvordan det gøres. Lad os sige, at vi har følgende modul:

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

Lad os eksportere vores funktion func. For at gøre dette skal vi skrive den til en egenskab i det indbyggede browserobjekt window:

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

Nu kan vi kalde vores funktion udefra modulet:

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

window.func(); // vil udskrive 'modulfunktion'

Det er ikke nødvendigt at kalde funktionen som en egenskab af objektet window:

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

func(); // vil udskrive 'modulfunktion'
Задание 1

Følgende modul er givet:

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

Eksporter en af variablerne og to vilkårlige funktioner til udsiden.