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 JohnDesafío
- Crea una función constructora llamada
Bookque 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 JohnPrué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());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
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase Círculo14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con Composición9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repaso