Funções Construtoras
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 4 de 56.
Funções construtoras são funções especiais em JavaScript que permitem criar múltiplos objetos com a mesma estrutura e comportamento.
Defina uma função construtora para um Person:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
return "Hello, my name is " + this.name;
};
}Crie um novo objeto Person usando o construtor:
const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);Após executar o código acima, john é um objeto com propriedades:
// o objeto john contém:
{
name: "John",
age: 30,
greet: function() { return "Hello, my name is John"; }
}Acesse propriedades e chame métodos:
console.log(john.name); // Saída: John
console.log(john.greet()); // Saída: Hello, my name is JohnDesafio
- Crie uma função construtora chamada
Bookque recebe três argumentos:
title(String)author(String)pages(Number)
A função deve definir estes como propriedades no objeto criado.
2. Adicione um método chamado getSummary que retorna uma string com algumas informações sobre o livro: this.title + " was written by " + this.author + " and has " + this.pages + " pages";
Folha de consulta
Funções construtoras criam múltiplos objetos com a mesma estrutura. Use a palavra-chave new para criar instâncias:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
return "Hello, my name is " + this.name;
};
}
const john = new Person("John", 30);
console.log(john.name); // Saída: John
console.log(john.greet()); // Saída: Hello, my name is JohnExperimente você mesmo
// TODO: Crie uma função construtora chamada Book que aceite três argumentos (title, author, pages)
// TODO: Defina estes argumentos como propriedades no objeto criado
// TODO: Adicione um método chamado getSummary que retorne uma string com algumas informações sobre o livro.
// Por exemplo: Harry Potter was written by Rowling and has 500 pages
// Não modifique o código abaixo
const inputTitle = inp[0]; // Primeira linha: título do livro
const inputAuthor = inp[1]; // Segunda linha: autor
const inputPages = parseInt(inp[2]);// Terceira linha: número de páginas
const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());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