Propriedades Computadas
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 44 de 56.
Propriedades computadas são getters que calculam e retornam um valor em vez de apenas retornar dados armazenados. Elas se parecem com propriedades comuns, mas calculam seu valor dinamicamente.
Vamos dar uma olhada no exemplo. Temos um objeto com uma propriedade comum:
const circle = {
radius: 5
};Agora adicionamos uma propriedade computada usando um getter:
const circle = {
radius: 5,
get diameter() {
return this.radius * 2;
}
};É assim que acessamos a propriedade computada:
console.log(circle.diameter); // Saída: 10Se atualizarmos o raio, o diâmetro também será atualizado automaticamente:
circle.radius = 10;
console.log(circle.diameter); // Saída: 20Propriedades computadas são úteis quando o valor de uma propriedade depende de outras propriedades ou requer cálculo.
Desafio
Você recebeu uma classe Rectangle com as propriedades width e height. Sua tarefa é adicionar propriedades computadas para area e perimeter.
- Propriedade computada
<strong>area</strong>- retorna width × height - Propriedade computada
<strong>perimeter</strong>- retorna 2 × (width + height)
Experimente você mesmo
import { Rectangle } from './rectangle.js';
// Código de teste - não modifique
const rect = new Rectangle(5, 10);
console.log(`Area: ${rect.area}`); // Deve exibir "Area: 50"
console.log(`Perimeter: ${rect.perimeter}`); // Deve exibir "Perimeter: 30"Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe CircleSobrescrita e Método AreaContador de Formas Estático14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com ComposiçãoValidação do Autor do Livro9Métodos e Propriedades Estáticos
Nível de Classe vs. Nível de InstânciaPropriedades EstáticasMétodos Utilitários EstáticosDesafio de Recapitulação12Getters e Setters
As Palavras-chave get e setPropriedades ComputadasValidação e Efeitos ColateraisDesafio de Revisão