Fonte: http://juliogreff.blog.br/javascript-orien...bjetos-parte-3/

Volto com a terceira parte sobre JavaScript Orientado a Objetos. Então chega de papo e vamos logo ao que interessa.

Propriedades Estáticas

Propriedades e métodos estáticos são aqueles que podem ser acessados de qualquer lugar do script, sem a necessidade de instanciar a classe. Considera-se que o JavaScript não suporta esse conceito, já que não possui classes, mas pode-se também simular.

Funções não deixam de ser objetos, e objetos podem ter propriedades. Veja no exemplo:
CODE
function Person() {  }
    Person.staticMethod = function() { alert("Método Estático"); }
    Person.staticMethod(): // "Método Estático"
    var me = new Person();
    me.staticMethod(); // Retornará erro

Também muito simples, e bem útil em certas ocasiões. Podemos tomar como exemplo a Mootools, com o Class e Class.empty. Class é um construtor, e Class.empty é um método estático.

Herança

A herança é outro conceito que o JavaScript não implementa formalmente, necessitando das famosas gambiarras. Quando bem empregada, permite uma grande reutilização de código, criando classes derivadas a partir de uma superclasse (classe-mãe), herdando todas as propriedades.

Existem vários tipos específicos de pessoas, em vários sentidos. Brasileiros, portugueses, americanos, vendedores, médicos, desenvolvedores… Mesmo sendo mais específicos, todos eles têm características comuns de uma pessoa. Assim, o construtor Brazilian é derivado de Person.

Primeiro, vamos criar os construtores com suas propriedades.
CODE
function Person() {
        this.eyes = 2;
        this.speak = function(message) {
            alert(message);
        }
    }
    function Brazilian() {
        this.birthCountry = "Brasil";
    }

Pessoas falam, e isso se aplica também aos brasileiros, mas nem todas as pessoas nasceram no Brasil. Assim, a superclasse (ou super-construtor) é Person, e somente nela definimos as propriedades comuns.

Para fazer a herança existem vários métodos, mas vou explicar agora somente o que considero o mais simples e usado. Basta criar uma instância do “super-construtor” no protótipo do construtor derivado, assim:
CODE
Brazilian.prototype = new Person;

Todo o construtor Person foi instanciado como parte de Brazilian. Agora podemos criar um objeto Brazilian e utilizar tanto as propriedades específicas (definidas no próprio construtor) quanto as do “super-construtor”.
CODE
var me = new Brazilian("Julio Greff");
    alert(me.birthCountry); // "Brasil"
    me.speak("Olá!"); // "Olá!"

Existem outros métodos para herança, mas como já disse ficarão para outra oportunidade. E a série sobre JavaScript Orientado a Objetos se encerra aqui! Qualquer correção ou sugestão será bem vinda, basta comentar! Até!

Você gostou? Comente no fórum!

Mais recentes em JavaScript e Ajax

Como bloquear imagens do site
Por Lucasbr - E ai galera, blz? - se que é impossivel proteger realmente...
Validador de formulário
Por carlosmborgesjr - Boa tarde, - cara, seu validador ficou muito bom, muito...
[prototype]classe de utilidades - continuação
Por Carutcho - Continuação da classe, método setattrib...
[prototype]classe de utilidades
Por Carutcho - Criando classe de utilidades aos poucos....
O que permite várias requisições
Por VBRSOFT - Olá micox, - parabéns, é um excelente script! -...

Ver mais Artigos de JavaScript e Ajax.

Ver e retirar outras dúvidas no fórum Webly.

Alguns Direitos Reservados | RSS | O Fórum

Webly Portal e Fóruns - Internet + Humana | Design by ArthurHenrique.com