Хотелось бы узнать побольше о методах применения паттерна Модуль, если можно на реальных примерах. Спасибо.
Паттерн модуль нужен для реализации инкапсуляции данных в JS и для предотвращения засорения глобальной области видимости. Например есть книга "Javascript Шаблоны", там есть полное описание и примеры этого паттерна, и много других интересных вещей.
Примеры:
Тут мы предотвращаем засорение глобальной области видимости, обернув наш код в модуль:
(function(){
var x = 20;
// какой-то код, использующий Х
}())
console.log(x) // Uncaught ReferenceError: x is not defined, тут x не доступен
Реализация инкапсуляции. Делаем глобальный объект с публичным интерфейсом и приватными данными. В данном случае пример бессмысленный, но на этой основе можно делать много полезных вещей.
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
Сборка персонального компьютера от Artline: умный выбор для современных пользователей