Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Declarar classe
  2. Declarar atributo
  3. Declarar atributo estático
  4. Usando this
  5. Classe anônima
  6. Classe interna
  7. Atributo computado

Uma classe representa o "esqueleto/template" em que podemos declarar atributos e métodos. A partir de uma classe podemos instanciar objetos. Nessa parte do tutorial, vamos aprender o básico sobre a declaração de classes e atributos.

Os de conceitos de P.O.O podem ser vistos em Conceitos O.O.

Para a declaração de uma classe em JS, utilizamos a sintaxe abaixo. Uma vez definida uma classe, podemos instanciar os objeto utilizando a palavra reservada new.

Sintaxe
class nome_classe {
  //corpo omitido
}
Exemplo 1
class MinhaClasse
{
    //omitido
}

let obj = new MinhaClasse();
Saída
-

No exemplo acima, ao instanciar um objeto, invocamos seu construtor padrão. Mais sobre esse assunto será visto em JavaScript POO: Métodos.

Js permite que objetos sejam declarados também de acordo com a sintaxe abaixo:

Sintaxe
let objeto = {
    nome_atributo1: valor1,
    nome_atributo2: valor2,

    nome_metodo1: function ( <parametros> ){
        //corpo
    }
};
Exemplo 2
let objeto = {
atributo1: 0,
atributo2: "string",
    metodo : function (p1,p2){
        console.log(p1, p2);
    }
}

console.log(objeto.atributo2);
objeto.metodo(1,2);
Saída
string
1 2

A declaração de um atributo é feita utilizando o nome do atributo desejado. Seu valor padrão é opcional.

Sintaxe
class nome_classe 
{
  nome_atributo1 [= valor_padrao1];
  nome_atributo2 [= valor_padrao2];
  nome_atributoN [= valor_padraoN];
}
Onde
[]: opcional
Exemplo 3
class MinhaClasse
{
  atributo = undefined;
}

let obj = new MinhaClasse();
Saída
-

O acesso e alteração de um atributo, quando público, é feita utilizando o operador (.) seguido do nome do atributo, como pode ser visto na sintaxe abaixo:

Sintaxe
nome_objeto.nome_propriedade = valor;
Exemplo 4
class MinhaClasse
{
  propriedade = 100;
}

let obj = new MinhaClasse();
console.log(obj.propriedade);
Saída
100

Os atributos estáticos são declarados com o modificador de acesso static que permite que esses atributos possam ser acessados sem a necessidade de instanciar um objeto.

Sintaxe
static nome_atributo;
Exemplo 5
class MinhaClasse
{
  static atributo = "teste";
  //métodos omitidos
}

console.log(MinhaClasse.atributo);
Saída
teste

Os métodos declarados ou definidos utilizando a palavra reservada static só podem acessar atributos e outros recursos declarados usando o mesmo modificador.

O this é uma palavra reservada da linguagem JS que diz que estamos fazendo referência à própria classe. Dessa forma, é possível distinguir de qual classe o recursos, por exemplo, atributos e variáveis locais, desejamos utilizar ou acessar.

Sintaxe
this.nome_recurso
Exemplo 6
class MinhaClasse {
  atributo = 0;
  
  metodo(param){
    let atributo = 1; //variável local
    this.atributo = param; //atributo da classe
  }
}
Saída
-

JS permite que classes anônimas sejam atribuídas a variáveis, por exemplo. Esse tipo de classe não possui nome e é declarada de acordo com a sintaxe abaixo:

Sintaxe
let nome_variavel = new class {
    //corpo
}
Exemplo 7
let classe = new class{
    atributo = 999;
}

console.log(classe.atributo);
Saída
999

  1. 18/08/2025 - revisão 3 - Ajustes: pontuais, sintaxes, numeração de exemplos e 'objetivos'; Adição: classe anônima e Ex.2
  2. 26/09/2024 - revisão 2 - Correção: troca de 'propriedade' por 'atributo', 'Declarando atributos'; ajustes pontuais
  3. 05/10/2023 - revisão 1 - correção de links, erros gramaticais, adição de this e remoção de tópico método constutor
  4. 31/05/2023 - versão inicial