JavaScriptтеги модулдордо обьектти экспорттоо, кыбылуулар аркылуу

Бизде төмөнкүдөй модул бар деп коёлу:

javascript;(function() {
  function func1() {
    alert('module funcion');
  }
  function func2() {
    alert('module funcion');
  }
  function func3() {
    alert('module funcion');
  }
})();

Биз үч функцияны да сыртка экспорттоону каалайбыз деп коёлу. Бул учурда, модулдун сыртында функциялардын ашыкча аттарын көбөйтпөө үчүн, бардык функцияларды бир обьектке жазып, аны экспорттоо жакшыраак:

javascript;(function() {
  function func1() {
    alert('module funcion');
  }
  function func2() {
    alert('module funcion');
  }
  function func3() {
    alert('module funcion');
  }
  
  window.module = {func1: func1, func2: func2, func3: func3};
})();

Ачкычтардын аттары жана өзгөрмөлөрдүн аттары дал келгендиктен, функциялар менен обьектти жөнөкөйлөтсө болот:

javascript;(function() {
  function func1() {
    alert('module funcion');
  }
  function func2() {
    alert('module funcion');
  }
  function func3() {
    alert('module funcion');
  }
  
  window.module = {func1, func2, func3};
})();

Башка жол менен да барышы мүмкүн. Функцияларды түшүндүргөндө эле, төмөнкүдөй, обьектке жаза баштайлы:

javascript;(function() {
  let module = {};
  
  module.func1 = function() {
    alert('module funcion');
  }
  module.func2 = function() {
    alert('module funcion');
  }
  module.func3 = function() {
    alert('module funcion');
  }
  
  window.module = module;
})();
Задание 1

Төмөнкү модул берилген:

javascript;(function() {
  let str1 = 'module variable';
  let str2 = 'module variable';
  let str3 = 'module variable';
  
  function func1() {
    alert('module funcion');
  }
  function func2() {
    alert('module funcion');
  }
  function func3() {
    alert('module funcion');
  }
  function func4() {
    alert('module funcion');
  }
  function func5() {
    alert('module funcion');
  }
})();

Биринчи беш функция жана биринчи эки өзгөрмө менен обьектти сыртка экспорттогула.