class

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

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 class expression.

Sintaxe

js
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 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.

js
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

Specification
ECMAScript® 2026 Language Specification
# sec-class-definitions

Compatibilidade com navegadores

Veja também