--- title: class slug: Web/JavaScript/Reference/Statements/class tags: - Classes - Declaração - ES2015 - ES6 - Estático - JavaScript - Static translation_of: Web/JavaScript/Reference/Statements/class ---
{{jsSidebar("Statements")}}
A declaração class cria uma nova classe com dado nome usando a herança do protótipo base.

 

Você também pode definir uma classe usando {{jsxref("Operators/class", "class expression", "", 1)}}.

Sintaxe

class name [extends] {
  // class body
}

Descrição

Assim como as expressões de classe, o corpo de uma declaração de classe é executado em strict mode.

Declarações de classe não são {{Glossary("Hoisting", "hoisted")}} (ao contrário de function declarations).

Exemplos

Declaração simples de classe

No exemplo a seguir, primeiro definimos uma classe chamada Polygon, então extendemos essa classe para criar uma classe chamada Square. Note que super(), usada no construtor, só pode ser usada em construtores e deve ser chamada antes da chave this ser usada.

class Poligono {
  constructor(altura, largura) {
    this.nome = 'Polígono';
    this.altura = altura;
    this.largura = largura;
  }
}

class Quadrado extends Poligono {
  constructor(altura) {
    super(altura, altura);
    this.nome = 'Quadrado';
  }
}

Especificações

Especificação Status Comentário
{{SpecName('ES6', '#sec-class-definitions', 'Class definitions')}} {{Spec2('ES6')}} definição inicial.

Compatibilidade com navegadores

{{Compat("javascript.statements.class")}}

Veja também