Lazaro Fernandes Lima Suleiman

Lazaro Fernandes Lima Suleiman

head of technology at @Hondana

Desenvolvendo Módulos com JavaScript

O Module Pattern no JavaScript é muito recomendado para ajudar no design da sua aplicação, pois traz vantagens como:

1
2
3
4
5

var Modulo = (function () {
// code
})();

######Vamos falar um pouco mais sobre o “porquê” daquele () maroto alí no final no próximo post ;)

Um módulo nada mais é que do que uma função anônima que é executada e retornada para a variável.

Como o JavaScript não possui variáveis privadas uma forma de contornar essa limitação é utilizando o conceito de Immediately-Invoked Function Expression (IIFE), conforme abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var Modulo = (function () {

var metodoPrivado = function () {
return "Olá";
};

return {
metodoPublicoUm: function () {
// return metodoPrivado();
},
metodoPublicoDois: function () {

}
};

})();

A ideia por traz deste conceito é que o módulo expõe suas propriedades e métodos públicos através do return, mantendo privado quaisquer outras propriedades e métodos internos, simples assim.

index.html
1
2
3
4
5
6
7
8
9
10

...
<script type="text/javascript" src="modulo.js" />
<script type="text/javascript">
$(function(){
Modulo.metodoPublicoUm();
Modulo.metodoPrivado(); //undefined :p
});
</script>

No próximo post vamos falar sobre como extender nossos módulos, possibilitando o reaproveitamento de um módulo e também o uso de mocks para simular comportamentos em ambiente de teste.

vlw!

Comments