--- 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 ---
Você também pode definir uma classe usando {{jsxref("Operators/class", "class expression", "", 1)}}.
class name [extends] { // class body }
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).
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ção | Status | Comentário |
---|---|---|
{{SpecName('ES6', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ES6')}} | definição inicial. |
{{Compat("javascript.statements.class")}}