Prototype y Herencia Prototipal – Una imagen mental para entender fácil y rápido

Busqueda en un hotel

Básicamente en Javascript todo representa un objeto. Todos comparten una serie de propiedades aunque sea un simple string. ¿Pero qué hay de los prototypes y la herencia prototipal?

La herencia prototipal básicamente se usa para almacenar en determinados espacios de memoria una serie de propiedades para nuestros objetos en Javascript. Es la solución o adaptación que hizo el lenguaje para funcionar de forma similar a la Programación Orientada a Objetos, en los que una clase comparte ciertas propiedades en un objeto y éstas se reciclan o heredan en otros.

function Hero (name) {
            this.name = name;
        }

        Hero.prototype.saludar = function() {
            console.log(`Me llamo: ${this.name}`);
        }

        const ironMan = new Hero("Iron Man");

        // Buscar a Raquel en la habitación
        console.log('Propiedades del objeto Iron Man: ', ironMan);
        //  Buscar a Raquel en el edificio y los espacios privados comunes
        console.log('Primer Prototype: ', Object.getPrototypeOf(ironMan));
        //  Buscar a Raquel en los espacios comunes públicos del hotel
        console.log('Prototype del Prototype: ', Object.getPrototypeOf(Hero.prototype));

Este es uno de los conceptos más complejos y avanzados de entender en el lenguaje, y gracias a una clase de Platzi pude comprender y aclarar mucho mejor.

El Prototype y la herencia prototipal, a mi entender (corríjanme si me equivoco, el ideal de ésta sección del blog es compartir y discutir sobre los temas en cuestión) me la imagino a buscar una persona en un hotel. ¿Por que? Bueno, supongamos que queremos encontrar a Raquel… ¿Cuál sería el primer lugar donde podríamos comenzar a buscar? Pues en su habitación. Esta búsqueda sería como la que se hace dentro del objeto, en el primer nivel.

Si no encontramos a Raquel, lo siguiente sería salir y buscar en el corredor, piso por piso o la azotea, que sigue siendo un espacio privado compartido en el que se puede buscar a un huésped dentro de un hotel. En mi mente lo imagino como el primer espacio en memoria de Prototype (el primer Prototype de nuestro objeto).

Si aún así no encontramos a Raquel, nos tocaría buscar a Raquel en las áreas comunes. Aquellos espacios que comparten todos los que se alojan en el hotel. Piscinas, parques, jardines, etc. Esto segun mi comparación sería como el prototype del prototype, que no es más que una zona en memoria que comparten todos los objetos en nuestro programa/sistema.

¿Quieres consejos, recomendaciones y tutoriales?

Suscríbete para obtener acceso inmediato al mundo del desarrollo web, tendencias y productividad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *