Применение паттерна Модуль JS

271
02 августа 2021, 11:10

Хотелось бы узнать побольше о методах применения паттерна Модуль, если можно на реальных примерах. Спасибо.

Answer 1

Паттерн модуль нужен для реализации инкапсуляции данных в JS и для предотвращения засорения глобальной области видимости. Например есть книга "Javascript Шаблоны", там есть полное описание и примеры этого паттерна, и много других интересных вещей.

Примеры:

  1. Тут мы предотвращаем засорение глобальной области видимости, обернув наш код в модуль:

    (function(){
       var x = 20;
       // какой-то код, использующий Х
    }())
    console.log(x) // Uncaught ReferenceError: x is not defined, тут x не доступен
    
  2. Реализация инкапсуляции. Делаем глобальный объект с публичным интерфейсом и приватными данными. В данном случае пример бессмысленный, но на этой основе можно делать много полезных вещей.

    var Lib = (function(){
        // Приватные данные, недоступные извне
        var __Pi = 3.14;
        // Публичный интерфейс, доступный извне, использующий приватные данные
        return {
            calcCircleArea: function(r) {
                return __Pi * Math.pow(r,2);
            },
            calcCircleCircumference: function(r) {
                return 2 * __Pi * r;
            }
        }
    }())
    Lib.calcCircleArea(10) // узнать площадь круга радиусом 10
    Lib.calcCircleCircumference(10) // узнать длина окружности круга радиусом 10
    
READ ALSO
jquery, как отключить autofield в input

jquery, как отключить autofield в input

у меня есть форма, и я хочу в ней отключить автозаполнение

125
Помогите написать скрипт , который бы при потере фокуса на инпуте, проверял его содержимое на правильное количество символов

Помогите написать скрипт , который бы при потере фокуса на инпуте, проверял его содержимое на правильное количество символов

Сколько символов должно быть в инпуте, указывается в его атрибуте data-lengthЕсли введено подходящее количество, то outline инпута становится зеленым,...

251
React получить содержание тега по клику

React получить содержание тега по клику

Допустим, есть 2 дива, в первом текст один, во втором два

271
Утечка памяти при использовании QProcess и SSH

Утечка памяти при использовании QProcess и SSH

Пишу ПО под Linux которое подключается к аналогичным машинам и выполняет простенькие команды а-ля cat /proc/meminfo и подобные выводящие инфу о состоянии...

120