Objetos Literales y Prototipos en JavaScript

Clase 5 de 20Curso Básico de Programación Orientada a Objetos con JavaScript

Resumen

¿Qué es un objeto literal en JavaScript?

Un objeto literal en JavaScript es una forma de crear objetos de manera sencilla utilizando llaves {}. Estos objetos pueden contener propiedades y métodos que representan características y acciones que los objetos deben tener. En términos generales, los objetos literales son la manera más sencilla de crear estructuras de datos organizadas en JavaScript.

Cómo crear un objeto literal

Crear un objeto literal es bastante sencillo:

const natalia = {
    name: "Natalia",
    age: 20,
    cursosAprobados: [
        "Curso definitivo de HTML y CSS",
        "Curso práctico de HTML y CSS"
    ]
};

Añadiendo métodos a los objetos literales

Además de las propiedades, los objetos literales pueden tener métodos, que son funciones que realizan acciones específicas. Por ejemplo, para agregar un curso a la lista de cursos aprobados:

natalia.aprobarCurso = function(nuevoCurso) {
    this.cursosAprobados.push(nuevoCurso);
};

¿Cómo funciona el prototipo en JavaScript?

En JavaScript, todos los objetos tienen un prototipo, que es un objeto del cual heredan propiedades y métodos. Este prototipo puede personalizarse mediante la creación de funciones constructoras que actúan como moldes para crear múltiples instancias con las mismas propiedades y métodos.

Creación de un prototipo utilizando funciones constructoras

Para crear un prototipo, podemos definir una función constructora:

function Student(name, age, cursosAprobados) {
    this.name = name;
    this.age = age;
    this.cursosAprobados = cursosAprobados;
}

// Método añadido al prototipo
Student.prototype.aprobarCurso = function(nuevoCurso) {
    this.cursosAprobados.push(nuevoCurso);
};

Instanciando un prototipo

Con el prototipo definido, podemos crear nuevas instancias de Student:

const juanita = new Student("Juanita Alejandra", 15, ["Introducción a los videojuegos", "Producción de videojuegos", "Creación de personajes"]);

Ahora, juanita tiene acceso al método aprobarCurso:

juanita.aprobarCurso("Curso de Unreal Engine");

¿Por qué utilizar prototipos en lugar de objetos literales?

El uso de prototipos tiene varias ventajas:

  1. Reutilización del código: Permite definir métodos una sola vez en el prototipo, evitando la duplicación de código.
  2. Memoria eficiente: Los métodos definidos en el prototipo se comparten entre todas las instancias, en lugar de ser replicados para cada una, lo que ahorra memoria.
  3. Flexibilidad y mantenimiento: Agregar o modificar métodos a nivel del prototipo implica cambios automáticos en todas las instancias existentes, facilitando el mantenimiento.

Con esta explicación y ejemplos, queda claro que el manejo de objetos literales y prototipos en JavaScript no sólo es crucial para la organización del código, sino también para el uso eficiente de recursos y para acelerar el desarrollo. Anímate a practicar más para aprovechar al máximo estas técnicas y sigue avanzando en tu camino de aprendizaje en programación con JavaScript.