Menu
Coddy logo textTech

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 John
challenge icon

Desafio

  1. Crie uma função construtora chamada Book que 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 John

Experimente 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());
quiz iconTeste seus conhecimentos

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