Skip to content

Instantly share code, notes, and snippets.

@fael
Created October 13, 2011 18:16
Show Gist options
  • Save fael/1285003 to your computer and use it in GitHub Desktop.
Save fael/1285003 to your computer and use it in GitHub Desktop.
Meu Module Design Pattern
/* Inspirado no post: http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth
Vantagens:
- Permitir a utilização de métodos/propriedades privadas.
- Adicionar metodos ou propriedades ao objeto ProjetoX a partir de outros arquivos js
Desvantagens:
- Como não é uma classe e em runtine eu não crio uma instância (new NAP()),
não é possível usar o this dentro de um método do objeto NAP
para invocar outro que também é método do objeto NAP.
*/
var NAP = (function (site, $) {
site.msg = function (texto) {
alert(texto);
};
site.init = function(){
console.log('dentro do init', NAP); //neste momento MSG(), INIT() e BYE() estão disponíveis
console.log(this); //DOCUMENT
site.msg("Oi");
site.bye(); //Teste de acesso a método que foi construdo de outro arquivo .js
}
return site;
}(NAP || {}, jQuery));
NAP.bye = function(){
NAP.msg("Tchau");
console.log('dentro do bye', NAP); //neste momento MSG(), INIT() e BYE() estão disponíveis
}
console.log('sem contexto', NAP); //neste momento MSG(), INIT() e BYE() estão disponíveis
$(NAP.init);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment