Как использовать значение переменной объекта window в другом модуле?

В рамках учебного задания по модульности кода и AJAX столкнулся с проблемой:
не могу записать в переменную window.picturesObjects и использовать данные полученные с сервера в одном из модулей.

//backend.js
'use strict'
(function(){
 window.backend = {
  load: function(onLoad, onError){
   var URL = '...';
   var xhr = XMLHttpRequest();
   xhr.responseType = 'json';

   xhr.addEventListener('load', function() {
    if(xhr.status === 200) {
     onLoad(xhr.response);
    } else {
     onError(..);
    }
   });

   xhr.open('GET', URL);
   xhr.send();
  }
 }
})();

// main.js
'use strict';
(function(){
 window.picturesObjects = []; // "Экспортируемая переменная, которую необходимо использовать в другом модуле
  // Получаем список фотографий, загруженных с сервера
  var successHandler = function (pictures) {
    var addFragment = function (elemArray, renderFunction, parentElem) {
      var fragment = document.createDocumentFragment();
      for (var i = 0; i < elemArray.length; i++) {
        fragment.appendChild(renderFunction(elemArray[i]));
      }
      parentElem.appendChild(fragment);
    };
    addFragment(pictures, renderPicture, picturesListELement);
    window.picturesObjects = pictures;
    console.log(window.picturesObjects); // Корректно показывает нужный массив с данными
  };

  window.backend.load(successHandler, errorHandler);
  console.log(window.picturesObjects); // Здесь и в модуле picture.js показывает пустой массив ((
})();

// picture.js
'use strict';
(function(){
 var showBigPicture = function (smallPicture) {
  ...
 }

 for (var i=0; i<picturesList.length; i++) {
  (function(picture) {
   pictureList[i].addEventListener('click', function () {
    showBigPicture(picture);
   });
  })(window.picturesObjects[i]);
 }
})();

Решение должно быть без использования директив export/import


Ответы (1 шт):

Автор решения: Ruslan

Спасибо, за советы. Все решилось просто добавлением той же функции window.backend.load(successHandler, errorHandler); в нужный модуль и редактировании уже там successHandler.

→ Ссылка