Propriedades e Métodos
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 13 de 56.
Classes em JavaScript nos permitem definir propriedades e métodos que serão compartilhados por todas as instâncias da classe.
Crie uma classe com propriedades:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}Ao criar uma instância, o construtor define estas propriedades:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.make); // Saída: 'Toyota'
console.log(myCar.model); // Saída: 'Corolla'Adicione um método à classe:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
getDescription() {
return `This car is a ${this.make} ${this.model}.`;
}
}Agora podemos chamar este método em qualquer instância:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.getDescription()); // Saída: 'This car is a Toyota Corolla.'Desafio
Crie uma classe chamada Book no arquivo book.js com o seguinte:
- Um construtor que recebe os parâmetros
title,authorepagese os define como propriedades. - Um método chamado
getInfoque retorna uma string no formato: “Title: [title], Author: [author], Pages: [pages]” - Exporte a classe adicionando `export` na frente da declaração `class`
Folha de consulta
Classes em JavaScript definem propriedades e métodos compartilhados por todas as instâncias.
Crie uma classe com um construtor:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}Crie uma instância usando new:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.make); // Saída: 'Toyota'Adicione métodos a uma classe:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
getDescription() {
return `This car is a ${this.make} ${this.model}.`;
}
}Chame métodos em instâncias:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.getDescription()); // Saída: 'This car is a Toyota Corolla.'Exporte uma classe:
export class Car {
// definição da classe
}Experimente você mesmo
import { Book } from './book.js';
// Teste (não modifique esta parte)
const book = new Book("JavaScript Basics", "John Doe", 200);
console.log(book.getInfo());
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 Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição