As classes foram introduzidas no ECMAScript 2015 e são simplificações da linguagem para as heranças baseadas nos protótipos. Não utiliza um novo modelo de herança de orientação a objetos em JavaScript, pois são formas mais simplificadas de criar objetos e lidar com herança.
Declaração de classe
A declaração de classe cria uma nova classe com um determinado nome usando herança baseada em protótipo.
class Poligono {
constructor (altura, largura) {
this.area = altura * largura;
}
}
console.log (new Poligono(4, 3).area);
//saída esperada: 12.
Definição de Classes
Class Expression
A class expression é uma maneira de definir uma classe no ECMAScript 2015. Semelhante às expressões de função, as expressões de classe podem ser nomeadas ou não. Se nomeadas, o nome da classe é local apenas para o corpo da classe.

Sintaxe

Descrição
Uma expressão de classe tem uma sintaxe semelhante a uma declaração de classe (instrução). Tal como acontece com as instruções de classe, o corpo de uma expressão de classe é executado no modo estrito.
Existem várias diferenças entre expressões de classe e instruções de classe. São elas:
● As expressões de classe podem omitir o nome da classe (“identificador de ligação”), o que não é possível com instruções de classe.
● Expressões de classe permitem que você redefina (declare novamente) classes sem lançar um SyntaxError. Este não é o caso com declarações de classe.
O método do construtor é opcional. As classes geradas com expressões de classe sempre responderão a typeof com o valor “função”.
Uma expressão de classe simples
Esta é apenas uma expressão de classe anônima simples que você pode se referir usando a variável Foo.

Expressões de classe nomeada