Classes são uma das principais características da orientação a objetos no JavaScript e servem modelos para criar objetos (instâncias) que compartilham propriedades e métodos. É uma maneira de escrever o código de uma forma mais organizada e reutilizável.
Antes do ECMAScript 2015 (ES6), o JavaScript não tinha suporte nativo para classes. Em vez disso, os desenvolvedores usavam funções construtoras e herança por protótipo para imitar a funcionalidade de classes. Com a introdução do ES6, o JavaScript agora oferece suporte nativo para classes.
Estrutura Básica
A sintaxe básica de uma classe no JavaScript é a seguinte:
class NomeDaClasse { constructor(propriedade1, propriedade2) { this.propriedade1 = propriedade1; this.propriedade2 = propriedade2; } metodo1() { // código do método 1 } metodo2() { // código do método 2 } }
A classe tem um construtor, que é uma função especial chamada quando um novo objeto é criado a partir da classe. O construtor pode ter parâmetros para inicializar as propriedades do objeto. Além disso, uma classe pode ter métodos, que são funções que fazem alguma coisa com o objeto.
Para criar uma nova instância de uma classe, você usa a palavra-chave “new”:
const minhaInstancia = new NomeDaClasse(valor1, valor2);
A partir daí, você pode acessar as propriedades e métodos da instância como:
minhaInstancia.propriedade1; minhaInstancia.metodo1();
Como era antes do ES6
Precisamos lembrar que o JavaScript é uma linguagem prototipada, então a palavra “class” é um facilitador e por baixo dos panos faz algo parecido com o seguinte código:
function NomeDaClasse(propriedade1, propriedade2) { this.propriedade1 = propriedade1; this.propriedade2 = propriedade2; this.metodo1 = function() { // código do método 1 }; this.metodo2 = function() { // código do método 2 }; } var objeto = new NomeDaClasse('valor1', 'valor2');
Herança
Além disso, você pode estender uma classe existente para criar uma nova classe com suas próprias propriedades e métodos adicionais. Isso é chamado de herança e é feito usando a palavra-chave extends
.
O código abaixocria uma nova classe NomeDaClasseFilha
que herda as propriedades e métodos da classe:
class NomeDaClasseFilha extends NomeDaClasse { constructor(propriedade1, propriedade2, propriedade3) { super(propriedade1, propriedade2); this.propriedade3 = propriedade3; } metodo3() { // código do método 3 } }
Conclusão
Isso ai, esse é o fundamento de utilização de classes no JavaScript. Se você teve duvida ou gostaria de um tutoria mais a fundo, prenda uma mensagem com a sua duvida e veremos o que podemos faze para te ajudar.