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

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