(function () {
var myFunction = function () {
// выполняем здесь некие действия
};
})();
// Объявим модуль
var Module = (function () {
return {
myMethod: function () {
},
someOtherMethod: function () {
}
};
})();
// Вызовем функцию как метод объекта
Module.myMethod();
Module.someOtherMethod();
var Module = (function () {
var _privateMethod = function () {
};
var publicMethod = function () {
};
return {
publicMethod: publicMethod,
}
})();
Паттерн «Модуль», который, за счёт использования замыкания, формируемого немедленно вызываемым функциональным выражением, и возвращаемого из этого выражения объекта, позволяет создавать общедоступные методы и приватные функции и структуры данных, с которыми нельзя напрямую работать извне. Этот шаблон позволяет скрывать детали реализации модулей, защищая их от случайных или намеренных изменений, и помогает поддерживать в чистоте глобальную область видимости.