Exportera variabler och funktioner i moduler genom closures i JavaScript

Ibland behöver man göra så att vissa variabler och funktioner i modulen är tillgängliga utifrån. Låt oss se hur detta görs. Anta att vi har följande modul:

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

Låt oss exportera vår funktion func. För att göra detta, låt oss tilldela den som ett egenskap på det inbyggda webbläsarobjektet window:

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

Nu kan vi anropa vår funktion utifrån modulen:

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

window.func(); // skriver ut 'modulfunktion'

Det är inte nödvändigt att anropa funktionen som en egenskap av objektet window:

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

func(); // skriver ut 'modulfunktion'
Задание 1

Följande modul är given:

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

Exportera en av variablerna och två valfria funktioner utåt.