Փոփոխականների և ֆունկցիաների էքսպորտում մոդուլներում փակումների միջոցով 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('մոդուլի ֆունկցիա');
  }
})();

Էքսպորտեք դրսին փոփոխականներից մեկը և ցանկացած երկու ֆունկցիա: