Classes

Classes em JavaScript foram introduzidas nas versões modernas do Javascript e são simplificações da linguagem para as heranças baseadas nos protótipos. Classes em JavaScript provêm uma maneira mais simples e clara de criar objetos.

Uma maneira de definir uma classe é usando uma declaração de classe. Para declarar uma classe, você deve usar a palavra-chave class seguida pelo nome da classe (aqui Retangulo).

class Retangulo {
  constructor(altura, largura) {
    this.altura = altura;
    this.largura = largura;
  }
}

Uma Expressão de Classe (class expression) é outra forma para definir classes. Expressões de Classes podem possuir nomes ou não (anônimas). O nome dado para uma expressão de classe é local ao corpo da classe.

// sem nome
let Retangulo = class {
  constructor(altura, largura) {
    this.altura = altura;
    this.largura = largura;
  }
};

// nomeada
let Retangulo = class Retangulo {
  constructor(altura, largura) {
    this.altura = altura;
    this.largura = largura;
  }
};

Métodos construtores

O construtor é um método especial para criar e inicializar um objeto criado a partir de uma classe. Apenas um método especial com o nome constructor pode existir em uma classe. O erro SyntaxError será mostrado se a classe contiver mais de um método constructor.

Instanciando um objeto a partir de uma classe

Um "construtor" em JavaScript é "somente" uma função que passa a ser chamada com o operador new. O operador new cria uma instancia de uma classe definido pelo usuário ou de um dos tipos nativos (built-in) que possuem uma função construtora.

Métodos Protótipos

Os métodos declarados dentro de uma definição de classe são métodos protótipos, aqueles que serão herdados pelos objetos que tomarem a classe definida como seu protótipo. No exemplo abaixo, o método calcularArea é herdado por todos os objetos que instanciarem (new) o objeto Retangulo.

Métodos estáticos

A palavra-chave static define um método estático de uma classe. Métodos estáticos são chamados sem a instanciação da sua classe e não podem ser chamados quando a classe é instanciada. Métodos estáticos são geralmente usados para criar funções de utilidades por uma aplicação.

Chamadas a métodos estáticos são feitas diretamente na classe e não podem ser feitas em uma instância da classe. Métodos estáticos são comumente utilizados como funções utilitárias.

Last updated

Was this helpful?