Menu
Coddy logo textTech

Funciones constructoras

Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 4 de 56.

Las funciones constructoras son funciones especiales en JavaScript que te permiten crear múltiples objetos con la misma estructura y comportamiento.

Define una función constructora para un Person:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}

Crea un nuevo objeto Person usando el constructor:

const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);

Después de ejecutar el código anterior, john es un objeto con propiedades:

// el objeto john contiene:
{
  name: "John",
  age: 30,
  greet: function() { return "Hello, my name is John"; }
}

Accede a las propiedades y llama a los métodos:

console.log(john.name); // Salida: John
console.log(john.greet()); // Salida: Hello, my name is John
challenge icon

Desafío

  1. Crea una función constructora llamada Book que reciba tres argumentos:
  • title (String)
  • author (String)
  • pages (Number)

La función debe establecer estos como propiedades en el objeto creado. 

    2. Agrega un método llamado getSummary que devuelva una cadena con información sobre el libro: this.title + " was written by " + this.author + " and has " + this.pages + " pages";

Hoja de referencia

Las funciones constructoras crean múltiples objetos con la misma estructura. Utilice la palabra clave new para crear instancias:

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); // Outputs: John
console.log(john.greet()); // Outputs: Hello, my name is John

Pruébalo tú mismo

// TODO: Crea una función constructora llamada Book que reciba tres argumentos (title, author, pages)


// TODO: Establece estos como propiedades en el objeto creado


// TODO: Agrega un método llamado getSummary que devuelva una cadena con información sobre el libro.
// Por ejemplo: Harry Potter was written by Rowling and has 500 pages


// No modifiques el código de abajo
const inputTitle = inp[0];          // Primera línea: título del libro
const inputAuthor = inp[1];         // Segunda línea: autor  
const inputPages = parseInt(inp[2]);// Tercera línea: número de páginas

const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos