quinta-feira, 7 de julho de 2011

Herança em Javascript

Para aqueles que estão começando a desenvolver em javascript, um gostinho de OOP. Fácil e simples, como javascript deve ser.


Father = function(){
  var self = this; //Mantém até o fim o seu contexto
  self.class = "Father"; //Devolve o nome da classe (opcional)
  self.sayHi = function() {
      console.log('hi, from father');
  }; //Método que será sobrescrito
  self.sayHey = function() {
      console.log("hey, ... let's go!");
  }; //Método que será herdado
  return self; //O retorno deve ser seu contexto, ou seja, "o objeto"
};
Daugther = function(){
  var self = new Father(); //Em vez de se usar o próprio contexto, vamos usar o da classe pai e simplesmente sobrescrever os métodos que nos convir
  self.super = Father; //Mantém o acesso a classe pai ex.: (new Daugther).super().class será 'Father'
  self.sayHi = function(){
      console.log('hi, from daugther');
  }; //Método que sobreescreve o da classe pai
  self.class = "Daugther"; //Retorna 'Daugther' (opcional)
  return self; //O retorno deve ser o contexto do pai ("seu objeto") alterado
};

Abraços