Tradução em progresso.

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

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.

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
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Class definitions' in that specification.
Padrão definição inicial.

Compatibilidade de Browser

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support 42Edge Full support YesFirefox Full support 45IE No support NoOpera Full support 36Safari Full support 10.1WebView Android Full support 42Chrome Android Full support 42Edge Mobile Full support YesFirefox Android Full support 45Opera Android ? Safari iOS Full support 10.1Samsung Internet Android Full support 4.0nodejs Full support 6.0.0
Array subclassingChrome Full support 43Edge ? Firefox ? IE No support NoOpera Full support 36Safari ? WebView Android Full support 43Chrome Android Full support 43Edge Mobile ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android Full support 4.0nodejs ?
Allowed in sloppy modeChrome Full support 49Edge ? Firefox ? IE No support NoOpera Full support 36Safari ? WebView Android Full support 49Chrome Android Full support 49Edge Mobile ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android Full support 5.0nodejs ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: mdnwebdocs-bot, fscholz, SphinxKnight, AlanCezarAraujo, Selminha
Última atualização por: mdnwebdocs-bot,