В рамках 100-дневного соревнования по программированию я разрабатывал приложение Spotify, которое позволит пользователю создать для него список воспроизведения, основанный не более чем на имени исполнителя. В рамках этого упражнения я пытался включить различные компоненты JS, о которых я хотел бы узнать больше.

Я решил использовать шаблон раскрывающегося модуля, чтобы инкапсулировать множество конкретных действий Spotify (поиск исполнителя, создание плейлиста и т. д.). Это может быть или не быть лучшим вариантом использования, и, честно говоря, я не беспокоюсь об этом прямо сейчас. Одна из проблем, с которой я столкнулся, заключалась в том, как лучше передать переменные в модуль. После небольшого проб и ошибок я нашел ответ прямо перед собой в Learning JavaScript Design Patterns Эдди Османи.

В итоге я добавил в модуль общедоступные функции установки и показал их как общедоступные указатели.

const spotifyModule = (function() {
      const accessToken;
      function _setAccessToken(token){
           accessToken = token;
      }

      return {
          setAccessToken: _setAccessToken
      }
})();

Затем я могу установить свою приватную переменную (accessToken), используя общедоступный сеттер spotifyModule.setAccessToken('my-token-valu');