Skip to content

Instantly share code, notes, and snippets.

@lalabuy948
Created September 24, 2018 17:07
Show Gist options
  • Save lalabuy948/cb4a100190a0f8fad5e1c2d979443d62 to your computer and use it in GitHub Desktop.
Save lalabuy948/cb4a100190a0f8fad5e1c2d979443d62 to your computer and use it in GitHub Desktop.
Module pattern in JavaScript

Module pattern in JavaScript

IIFE (Immediately-Invoked Function Expression)

(function () {
  var myFunction = function () {
    // выполняем здесь некие действия
  };
})();

Return object from IIFE and API module

// Объявим модуль
var Module = (function () {
  return {
    myMethod: function () {

    },
    someOtherMethod: function () {

    }
  };
})();

// Вызовем функцию как метод объекта
Module.myMethod();
Module.someOtherMethod();

Privat / Public funcs

var Module = (function () {
  var _privateMethod = function () {

  };
  var publicMethod = function () {

  };
  return {
    publicMethod: publicMethod,
  }
})();

Description

Паттерн «Модуль», который, за счёт использования замыкания, формируемого немедленно вызываемым функциональным выражением, и возвращаемого из этого выражения объекта, позволяет создавать общедоступные методы и приватные функции и структуры данных, с которыми нельзя напрямую работать извне. Этот шаблон позволяет скрывать детали реализации модулей, защищая их от случайных или намеренных изменений, и помогает поддерживать в чистоте глобальную область видимости.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment