Categorias
Projetos

JavaScript Module Pattern (Padrão de Módulo)

Em JavaScript, o Module Pattern ou Padrão de Módulo é um padrão de codificação bastante comum. Em geral, é bem compreendido, mas há uma série de usos avançados que podem passar despercebidos. Neste artigo, veja os conceitos básicos sobre o Module Pattern e algumas informações mais avançadas sobre o padrão.

O básico sobre Module Pattern

Para começar, vamos a uma visão global sobre o Padrão de Módulo em JavaScript, já conhecido desde o post de Eric Miraglia a respeito há alguns anos atrás — mesmo que você já tenha lido o artigo sobre JavaScript IIFE como contêiner de códigos, talvez seja interessante rever o básico.

Anonymous Closures (Closures Anônimos)

Anonymous Closures são o construto fundamental em Module Pattern que tornam tudo isso possível e são uma das melhores característica de JavaScript: é possível criar uma função anônima e executá-la imediatamente. Todo o código que é executado dentro da função esta no escopo do closure (algo como “fechamento”), o que proporciona privacidade e estado durante toda a vida da aplicação.

(function () {
// Todas variáveis e funções estão somente neste escopo
// e ainda mantêm acesso a todos os globais
}());

Observe a () em torno da função anônima. Isto é requerido pela linguagem, uma vez que declarações que começam com a função de token são sempre considerados declarações de função. Incluir () cria uma expressão de função.

Global Import

JavaScript tem um recurso conhecido como implied globals (globals implícitas). Sempre que um nome é usado, o interpretador volta pela cadeia de escopo em busca de uma declaração de variável (var) para esse nome. Se nada for encontrado, a variável é assumida como global; se é usado em um assignmente, o global é criado se não existir. Isso significa que o uso ou a criação de variáveis