Guia Completo de Templates Dinâmicos com JavaScript Puro
Tutorial Completo de Classes e Herança em ES6+ JavaScript
As ClassesAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. foram introduzidas oficialmente em ES6 (ECMAScript 2015) para fornecer uma sintaxe mais simples e clara para criar objetos e trabalhar com o mecanismo de herança do JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente.. Embora por baixo dos panos ainda sejam usados prototypes, a sintaxe de classes
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. torna o código mais organizado e fácil de entender.
Neste tutorial, iremos explorar a criação de classesAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência., a definição de métodos e propriedades e, por fim, como a herança funciona em ES6+ para promover o reuso e estruturação de código de forma mais elegante.
O que são Classes no JavaScript?🔗
Em JavaScriptIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente., classes
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. são essencialmente “atalhos” para criar objetos e lidar com protótipos, mas com uma aparência
Relação entre HTML e CSSDescubra como HTML e CSS trabalham juntos para criar páginas web esteticamente agradáveis e bem estruturadas, facilitando a manutenção e o desempenho. e comportamento mais próximos de linguagens orientadas a objeto tradicionais. Essa forma de declarar classes foi adicionada para facilitar a compreensão e a manutenção do código.
Em resumo, uma classe define uma “receita” para criar objetosFundamentos de Arrays e ObjetosDomine arrays e objetos em JavaScript com este tutorial narrativo. Aprenda a utilizar métodos e exemplos práticos para aprimorar seu desenvolvimento web. que compartilham as mesmas características (propriedades) e comportamentos (métodos).
Declarando Classes🔗
Para declarar uma classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência., utilizamos a palavra-chave
class
seguida do nome que desejamos dar à classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência.
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência.. Dentro das chaves
{}
, definimos o método constructor()
, que é invocado automaticamente quando criamos uma instância (objeto) dessa classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência., e demais métodos que desejamos:
class Pessoa {
constructor(nome, idade) {
this.nome = nome;
this.idade = idade;
}
apresentar() {
console.log(`Olá, meu nome é ${this.nome} e tenho ${this.idade} anos.`);
}
}
// Criando uma instância
const pessoa1 = new Pessoa('Alice', 30);
pessoa1.apresentar(); // "Olá, meu nome é Alice e tenho 30 anos."
Detalhes e Boas Práticas
- Por convenção, o nome de classes em JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. começa com a primeira letra
Pseudo-elementos: ::before, ::after, ::first-letterAprenda como utilizar pseudo-elementos ::before, ::after e ::first-letter para criar efeitos visuais incríveis em suas páginas web com este tutorial prático. maiúscula.
- O método
constructor()
só pode ser definido uma vez por classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência.. Caso contrário, ocorrerá erro.
- Podemos criar quantos métodos quisermos dentro de uma classe
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência..
Métodos e Propriedades da Classe🔗
- Propriedades são normalmente criadas no
constructor()
usandothis
. - Métodos são funções
Funções e Escopo no JavaScriptAprenda a utilizar funções e escopos em JavaScript com nosso guia prático. Melhore sua organização de código e evolua seus projetos com boas práticas. declaradas dentro do corpo da classe, sem a palavra-chave
function
.
É válido notar que, em versões mais recentes do JavaScriptIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente., também podemos declarar
fields
(propriedades da classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência.) diretamente dentro do corpo, porém seu suporte ainda pode variar entre ambientes. Exemplo simplificado:
class Carro {
// Um campo de classe (ainda requer suporte em determinados navegadores)
marca = 'Marca Padrão';
constructor(modelo) {
this.modelo = modelo;
}
// Método
buzinar() {
console.log('Beep! Beep!');
}
}
const meuCarro = new Carro('ModeloXYZ');
console.log(meuCarro.marca); // "Marca Padrão"
meuCarro.buzinar(); // "Beep! Beep!"
Utilizando Getters e Setters🔗
Podemos definir métodos especiais que simulam propriedades: get
e set
. Isso permite que façamos validações ou transformaçõesTransformações: translate(), rotate(), scale(), skew()Aprenda a aplicar transformações em CSS como translate, rotate, scale e skew para criar layouts dinâmicos e visuais impactantes sem alterar o fluxo da página. quando alguém tenta ler (get) ou atribuir (set) valores a determinados atributos.
class Retangulo {
constructor(largura, altura) {
this._largura = largura;
this._altura = altura;
}
get largura() {
return this._largura;
}
set largura(valor) {
if (valor <= 0) {
console.error('A largura precisa ser maior que zero!');
return;
}
this._largura = valor;
}
get area() {
return this._largura * this._altura;
}
}
const retangulo = new Retangulo(10, 5);
console.log(retangulo.area); // 50
retangulo.largura = 0; // "A largura precisa ser maior que zero!"
Dica: nomes internos como\_largura
e\_altura
costumam ser adotados para indicar que são propriedades “privadas” ou de uso interno, mas não há real encapsulamento em JavaScript (a menos que usemos private fields em versões mais recentes).
Métodos e Propriedades Estáticas🔗
Métodos e propriedades estáticasPosicionamento: static, relative, absolute, fixed, stickyDescubra como usar os métodos de posicionamento CSS, de static a sticky, para criar layouts interativos, precisos e eficazes. são acessados diretamente a partir da classe
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência., sem precisar criar instâncias. Para defini-los, usamos a palavra-chave
static
:Posicionamento: static, relative, absolute, fixed, stickyDescubra como usar os métodos de posicionamento CSS, de static a sticky, para criar layouts interativos, precisos e eficazes.
class Conversor {
static celsiusParaFahrenheit(c) {
return (c * 9/5) + 32;
}
}
console.log(Conversor.celsiusParaFahrenheit(25)); // 77
Esses métodos e propriedades são especialmente úteis para criar utilitários ou constantes relacionadas à classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência..
Herança com "extends" e "super"🔗
A herança permite criar classes “filhas” que estendem o comportamento de classesAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. “pais”. Para isso, utilizamos a palavra-chave
extends
. Dentro de uma classe filha, podemos chamar o construtor e métodos da classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. pai usando
super
.
Criando uma Classe Base
class Animal {
constructor(nome) {
this.nome = nome;
}
emitirSom() {
console.log(`${this.nome} está fazendo um som...`);
}
}
Criando a Classe Derivada
class Cachorro extends Animal {
constructor(nome, raca) {
super(nome); // chama o constructor da classe Animal
this.raca = raca;
}
emitirSom() {
// sobrescreve o método da classe pai
console.log(`${this.nome} (raça: ${this.raca}) está latindo: Au Au!`);
}
}
const rex = new Cachorro('Rex', 'Labrador');
rex.emitirSom();
// "Rex (raça: Labrador) está latindo: Au Au!"
No exemplo acima, Cachorro
herda as características da classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência.
Animal
, mas adiciona novas propriedades (raca
) e também sobrescreve (override
) o método emitirSom()
.
Exemplo Prático de Herança🔗
A seguir, um exemplo narrativo que mostra como organizar classesAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. e herança de forma mais ampla para representar uma pequena hierarquia de contas bancárias:
class ContaBancaria {
constructor(agencia, numero, saldoInicial) {
this.agencia = agencia;
this.numero = numero;
this.saldo = saldoInicial;
}
depositar(valor) {
this.saldo += valor;
console.log(`Depósito de R$ ${valor} realizado! Saldo atual: R$ ${this.saldo}.`);
}
sacar(valor) {
if (valor > this.saldo) {
console.log('Saldo insuficiente!');
return;
}
this.saldo -= valor;
console.log(`Saque de R$ ${valor} realizado! Saldo atual: R$ ${this.saldo}.`);
}
}
class ContaCorrente extends ContaBancaria {
constructor(agencia, numero, saldoInicial, limiteChequeEspecial) {
super(agencia, numero, saldoInicial);
this.limiteChequeEspecial = limiteChequeEspecial;
}
sacar(valor) {
if (valor > (this.saldo + this.limiteChequeEspecial)) {
console.log('Saldo insuficiente mesmo com cheque especial!');
return;
}
this.saldo -= valor;
console.log(`Saque de R$ ${valor} realizado! Saldo atual: R$ ${this.saldo}.`);
}
}
class ContaPoupanca extends ContaBancaria {
constructor(agencia, numero, saldoInicial) {
super(agencia, numero, saldoInicial);
}
renderJuros(taxa) {
const rendimento = this.saldo * taxa;
this.saldo += rendimento;
console.log(`Rendimento de R$ ${rendimento} aplicado! Saldo atual: R$ ${this.saldo}.`);
}
}
// Exemplo de utilização
const contaCorrente = new ContaCorrente('001', '12345-6', 1000, 500);
contaCorrente.sacar(1200);
// "Saque de R$ 1200 realizado! Saldo atual: R$ -200."
contaCorrente.sacar(500);
// "Saldo insuficiente mesmo com cheque especial!"
const contaPoupanca = new ContaPoupanca('001', '98765-4', 2000);
contaPoupanca.renderJuros(0.01);
// "Rendimento de R$ 20 aplicado! Saldo atual: R$ 2020."
Esse código ilustra como a classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência.
ContaBancaria
fornece a base de operações de depósito e saque, enquanto ContaCorrente
e ContaPoupanca
adicionam ou modificam comportamentos, aproveitando o que já existe na classeAtributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. “mãe”.
Conclusão🔗
- Classes
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. em ES6+ fornecem uma forma mais declarativa e intuitiva de lidar com objetos e herança
Herança Básica: Introdução ao ConceitoDescubra como a herança em CSS simplifica a organização dos estilos, promovendo economia de código e manutenção facilitada. Aprenda o conceito agora!.
- O uso de extends e super permite reaproveitar código e criar hierarquias lógicas de classes
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência..
- Métodos e propriedades estáticas
Posicionamento: static, relative, absolute, fixed, stickyDescubra como usar os métodos de posicionamento CSS, de static a sticky, para criar layouts interativos, precisos e eficazes. são acessíveis diretamente a partir da classe
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência., sem precisar instanciar.
- Getters e setters ajudam na interação controlada de propriedades, limitando valores inválidos ou criando formas de leitura mais inteligentes.
O domínioComo Hospedar seu Site na InternetAprenda a publicar seu site com nosso guia detalhado sobre registro de domínio, hospedagem, FTP e segurança. Mantenha seu website acessível e protegido 24h. desses recursos de classes
Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência. e herança oferece uma base sólida para organizar sua aplicação em JavaScript, simplificar o reuso de lógica, manter o código limpo e facilitar futuras modificações. A prática constante, criando exemplos e buscando sempre o melhor design, é fundamental para dominar completamente essa feature do JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente..
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Documentação oficial do MDN: developer.mozilla.org/pt-BR/docs/Web/JavaScript
- ECMAScript® Language Specification: tc39.es/ecma262/