(function() {
...
window.a = 1 // теперь у нас есть переменная `a` в глобальной области видимости
})()
var obj = (function() {
function privateMethod(a, b) {
// эта функция не может вызываться снаружи
// но может вызываться методами возвращаемого анонимной функцией объекта
}
return {
publicMethod: function(a, b) {alert(privateMethod(a, b))}
}
})()
obj.publicMethod(1, 2) // всё нормально
obj.privateMethod(1, 2) // ошибка: privateMethod может вызываться из publicMethod, но не из глобальной области видимости
но вы и сами понимаете что вы ...