ජාවාස්ක්‍රිප්ට් මොඩියුලවල වස්තුවක් නිර්යාත කිරීම closure භාවිතයෙන්

අපට පහත මොඩියුලය ඇතැයි සිතමු:

javascript;(function() {
  function func1() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func2() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func3() {
    alert('මොඩියුල ශ්‍රිතය');
  }
})();

අපට ශ්‍රිත තුනම පිටතට නිර්යාත කිරීමට අවශ්‍ය යැයි සිතමු. මෙම අවස්ථාවේදී, මොඩියුලයෙන් පිටත අමතර ශ්‍රිත නම් නොසෑදීම සඳහා, ශ්‍රිත සියල්ලම එක් වස්තුවකට ලියා එම වස්තුව නිර්යාත කිරීම වඩා හොඳය:

javascript;(function() {
  function func1() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func2() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func3() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  
  window.module = {func1: func1, func2: func2, func3: func3};
})();

යතුරුවල නම් සහ විචල්යවල නම් එකම නිසා, ශ්‍රිත සහිත වස්තුව සරල කළ හැකිය:

javascript;(function() {
  function func1() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func2() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func3() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  
  window.module = {func1, func2, func3};
})();

අනෙක් මාර්ගයකින් ද යා හැකිය. අපි ශ්‍රිත විස්තර කරන අවස්ථාවේදීම වස්තුවකට ශ්‍රිත ලියන්නෙමු, මෙලෙස:

javascript;(function() {
  let module = {};
  
  module.func1 = function() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  module.func2 = function() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  module.func3 = function() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  
  window.module = module;
})();
Задание 1

පහත මොඩියුලය ලබා දී ඇත:

javascript;(function() {
  let str1 = 'මොඩියුල විචල්යය';
  let str2 = 'මොඩියුල විචල්යය';
  let str3 = 'මොඩියුල විචල්යය';
  
  function func1() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func2() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func3() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func4() {
    alert('මොඩියුල ශ්‍රිතය');
  }
  function func5() {
    alert('මොඩියුල ශ්‍රිතය');
  }
})();

පළමු ශ්‍රිත පහ සහ පළමු විචල්ය දෙක සමඟ වස්තුවක් පිටතට නිර්යාත කරන්න.