Protótipo (OO) ou (OP) com JS


Para quem não sabe o que é prototype:

O padrão Prototype fornece uma outra maneira de se construir objetos de tipos arbitrários. Ao invés de passar um objeto BicycleFactory, um objeto Bicycle é recebido como argumento. Seu método clone() é invocado para criar novos objetos Bicycle; estamos construindo cópias do objeto fornecido.� (Fonte: Wikipédia)

http://pt.wikipedia.org/wiki/Prototype

Bom esse exemplo abaixo foi enviado pelo Giovani Dalfovo, que é desenvolvedor de várias linguagens que nem sei qual :-D, mas pelo que sei ele é fera em JS, então se precisam de algo sobre o JavaScript pode acessar o site www.suntuoso.com

var MeuPrototipo = {};
MeuPrototipo.prototype = {
prop1: “”,
prop2: “”,

evento1: function(lala){
this.prop1 = lala;
},

evento2: function(hoho,aa){
this.prop2 = hoho + aa;
}
};

É claro que isso vai fazer com que vc instancie o “objeto” forçando o Prototipo a usar um método como construtor do mesmo, mais ou menos assim:

var coisa = new MeuPrototipo.evento1(’teste’);

Baseando-se nas melhores práticas novamente, eu fiz um construtor de classe (protótipo) que já deixa implícito um método como construtor, ficando assim:

var Classe = {
cria: function() {
return function() {
this.construtor.apply(this, arguments);
}
}
}

Dessa maneira você pode criar o seu protótipo assim:

var MeuPrototipo = Classe.cria();
MeuPrototipo .prototype = {
prop1: “”,
prop2: “”,

construtor: function(lala){
this.prop1 = lala;
},

evento2: function(hoho,aa){
this.prop2 = hoho + aa;
}
}

Agora para fazer a instância do “objeto” é só chamar assim:

var coisa = new MeuPrototipo(”lala”);

Assim ele irá chamar automaticamente o método construtor “construtor”.

Fonte: Giovani Dalfovo

Obs.: Não mudei nada que o desenvolvedor Giovani escreveu em seu e-mail ao sanar algumas dúvidas da minha pessoa :-D

4 Responses to “Protótipo (OO) ou (OP) com JS”

  1. Giovani Dalfovo Says:

    fala grande Andrey!
    Podia ter mudado o texto na boa cara, sou péssimo em redação… O que vale é a dica e o repasse de conhecimento.
    Há, eu nem testei issae, só escrevi no e-mail pra passar a idéia. tsc tsc
    De qualque forma, parabéns pelos seus trabalhos, ele possuem uma ótima qualidade! ;o)
    Flws!

  2. Andrey Pedro Lefkum Says:

    Opa,
    Na verdade era eu que estava com preguiça de formatar seu texto! :-D

  3. Desenvolvedor Jr Says:

    código todo errado, artigo muito mau formatado…

    NADA QUE ESTÁ AQUI FUNCIONOU….

  4. Andrey Pedro Lefkum Says:

    Sr. Desenvolvedor Jr.
    Deve estar fazendo tal afirmação por não ter propriedade no assunto, mesmo assim obrigado pela “colaboração”!
    Att.,
    Andrey.

Leave a Reply


This is a free Wordpress template provided by Mathew Browne | Web Design | SEO