Programação orientada a objetos é um paradigma de programação que usa abstração para criar modelos baseados no mundo real. Ele usa várias técnicas vindo de paradigmas previamente estabelecidos, incluindo modularidade, polimorfismo e encapsulamento.
Terminologia
Classe
Define as características do objeto.
Objeto
Uma instância de uma classe.
Atributo
Uma característica do objeto, tais como: cor, modelo, fabricante se estivemos representando um veículo, por exemplo.
Método
Uma ação do objeto, como ligar, desligar, frear se estivemos representando um veículo, por exemplo.
Construtor
Método chamado assim que uma nova instância do objeto for criada.
Herança
Uma classe pode herdar características de outra Classe.
Encapsulamento
Uma classe define apenas as caracteristicas do objeto. Um método define apenas como o método é executado.
Abstração
A conjunção de herança complexa, métodos, propriedades de um objeto a fim de ser capaz de simular um modelo de realidade.
Polimorfismo
Diferentes Classes podem definir o mesmo método ou propriedade.
Objetos Personalizados
A Classe
JavaScript é uma linguagem que utiliza o conceito prototype-based, na qual não contém classes, como vemos no C++ ou Java. Isso às vezes se torna confuso para programadores acostumados a linguagens com uma declaração de classes. Em vez disto, JavaScript usa funções como classes. Definir uma classe-função é tão fácil como a definição de uma função. No exemplo abaixo, nós definimos uma nova classe chamada Wecode.
- Código:
function Wecode() { }
O objeto (Class Instance)
Para criar uma nova instância de um objeto obj, nós usamos a declaração new obj, atribuindo o resultado( que é um obj) a uma variável que será acessada depois.
No exemplo abaixo nós definimos uma classe chamada Wecode e criamos duas instâncias(we1 e we2).
- Código:
function Wecode() { }
var we1 = new Wecode();
var we2 = new Wecode();
O Construtor
O construtor é chamado no momento do instanciamento (o momento que a instância do objeto é criada). O construtor é um método da classe. Em JavaScript, a função serve como o construtor do objeto, portanto, não há necessidade de definir explicitamente um método construtor. Toda ação declarada na classe é executada no momento de seu instanciamento.
O construtor é usado para definir as propriedades do objeto ou para chamar metodos que preparem o objeto para o uso. Adicionando métodos de classe e suas definições, ocorrem usando uma sintaxe diferente, descrita depois nesse artigo.
No exemplo abaixo, o construtor da classe Wecode mostra um alerta quando uma pessoa é instânciada.
- Código:
function Wecode() {
alert("Person instantiated");
}
var we1 = new Wecode();
var we2 = new Wecode();
Leia o Artigo Inteiro: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript