Guía completa de Prototipos, Constructores e Herencia en JavaScript

Guía clara de JavaScript: herencia prototipal, prototipos, constructores y ES6, con buenas prácticas para crear objetos eficientes y depurar cadenas de prototipos.

17 ago 2025 • 6 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Introducción

JavaScript destaca entre los lenguajes de programación por utilizar herencia prototipal en lugar de herencia basada en clases tradicional. Esta diferencia puede generar confusión al principio pero, al comprender cómo funcionan los prototipos, se obtiene una visión más profunda del potente sistema de objetos de JavaScript. En este artículo revisamos de forma clara y práctica los conceptos de objetos, prototipos, funciones constructoras y herencia, y mostramos buenas prácticas que te ayudarán a escribir código más eficiente.

La base: objetos en JavaScript

Todo en JavaScript es un objeto o hereda de Object.prototype. La forma más común de crear un objeto es mediante literal de objeto. Por ejemplo: let person = { name: John, age: 30, greet() { return Hola soy plus this.name } } y luego acceder a person.name o invocar person.greet. Técnicamente let person = {} es equivalente a let person = new Object y ambos heredan de Object.prototype, por eso disponen de métodos incorporados como toString y valueOf.

Entendiendo los prototipos

Cada objeto en JavaScript tiene una propiedad interna oculta llamada [[Prototype]] que enlaza a otro objeto y permite heredar propiedades y métodos. Para inspeccionar el prototipo de un objeto se recomienda usar Object.getPrototypeOf(obj). Aunque en muchos ejemplos se ve la propiedad no estándar __proto__, su uso no es recomendado en código de producción.

La cadena de prototipos

Diferentes tipos de objetos poseen distintos prototipos formando cadenas de herencia. Por ejemplo un array myArray tiene como prototipo Array.prototype y luego Object.prototype y finalmente null. Un string myString tiene String.prototype y luego Object.prototype. Estas cadenas explican por qué los arrays tienen push y pop mientras que los strings tienen charAt o slice.

Funciones constructoras

Las funciones constructoras actúan como plantillas para crear objetos similares cuando se usan con la palabra clave new. Al invocar new Constructor args JavaScript crea un objeto enlazado al prototype del constructor, ejecuta la función constructor con this apuntando a ese nuevo objeto y devuelve el objeto resultante salvo que la función retorne un objeto distinto. Por eso las funciones constructoras suelen empezar con mayúscula por convención.

Ejemplo conceptual de new

Cuando hacemos const car = new Car make model year internamente se crea un objeto enlazado a Car.prototype, se ejecuta Car con this apuntando a ese objeto y se devuelve el objeto. Por eso es común añadir métodos compartidos en Car.prototype para evitar duplicación y ahorrar memoria.

Instancias versus propiedades del prototipo

Las propiedades propias de la instancia pertenecen directamente al objeto y son únicas para cada instancia. Las propiedades del prototipo son compartidas entre todas las instancias. Por ejemplo car1.make y car2.make son propiedades de instancia distintas mientras que car1.drive y car2.drive pueden apuntar a la misma función definida en Car.prototype.

Relación prototype y __proto__

prototype es una propiedad de las funciones constructoras que apunta al objeto prototipo que heredarán las instancias. __proto__ o su reemplazo estándar Object.getPrototypeOf permiten acceder al prototipo de una instancia. Ambos pueden referirse al mismo objeto prototipo pero se usan en contextos distintos: uno en la función constructora y otro en la instancia.

Propiedad constructor

Cada prototipo tiene una propiedad constructor que apunta de vuelta a la función constructora original. Cuando se reasigna manualmente prototype es buena práctica restaurar Child.prototype.constructor igual a Child para mantener la referencia correcta.

Herencia prototipal

Para crear relaciones de herencia entre tipos se recomienda usar Object.create sobre el prototipo del padre y luego restaurar el constructor del hijo. Además dentro del constructor del hijo conviene invocar al constructor del padre con call this para inicializar las propiedades propias. Evita usar Object.setPrototypeOf sobre objetos ya existentes porque rompe optimizaciones de motores JS.

Control directo con Object.create

Object.create permite crear un objeto que hereda directamente de otro objeto sin necesidad de funciones constructoras. Es útil para patrones de prototipos simples y para composición cuando se quieren crear instancias que compartan comportamiento base sin la sintaxis de new.

Búsqueda de propiedades y shadowing

Al acceder a una propiedad JavaScript busca primero en el propio objeto, luego en su prototipo y sube por la cadena hasta encontrarla o llegar a null. El shadowing ocurre cuando un objeto hijo define una propiedad con el mismo nombre que una propiedad del padre; la búsqueda se detiene en la primera coincidencia.

Inspección y herramientas de depuración

Para comprobar si una propiedad pertenece a la instancia usar hasOwnProperty propName. Para verificar relaciones de herencia usar instanceof o isPrototypeOf. Object.getPrototypeOf ofrece la forma recomendada de acceder al prototipo. Una función de ayuda útil itera Object.getPrototypeOf de forma segura hasta un límite para mostrar la cadena de prototipos.

Clases modernas ES6

La sintaxis class introducida en ES6 es azúcar sintáctica sobre el sistema de prototipos. class y extends facilitan la lectura y mantenimiento del código y bajo el capó crean exactamente las mismas relaciones prototipales que las funciones constructoras tradicionales. super en una clase equivale a invocar call sobre el constructor padre.

Buenas prácticas rápidas

Usar Object.create para establecer herencia, restaurar la propiedad constructor al reasignar prototypes, preferir Object.getPrototypeOf sobre __proto__, añadir métodos al prototipo en lugar de dentro del constructor y evitar Object.setPrototypeOf en objetos existentes. Considerar ES6 classes para código más limpio manteniendo en mente que la mecánica subyacente sigue siendo prototipal.

Resumen de conceptos clave

Objects constituyen la base, los constructores generan instancias, los prototipos permiten compartir comportamiento, la herencia crea jerarquías y la cadena de prototipos habilita la búsqueda de métodos. Al comprender prototype versus Object.getPrototypeOf se domina cómo JavaScript resuelve la mayoría de las cuestiones de herencia.

Aplicación práctica y próximos pasos

Practica creando jerarquías con funciones constructoras y con ES6 classes, inspecciona cadenas de prototipos y optimiza definiendo métodos en prototipos cuando convenga. Experimenta también con Object.create para patrones de composiciòn y reutilización.

Q2BSTUDIO y cómo te ayudamos

En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones innovadoras. Ofrecemos servicios de software a medida, aplicaciones a medida y consultoría en inteligencia artificial para empresas. Nuestro equipo implementa agentes IA, soluciones de ia para empresas y plataformas analíticas como power bi para servicios inteligencia de negocio. Además proporcionamos ciberseguridad integral y despliegue y administración en servicios cloud aws y azure para garantizar disponibilidad, escalabilidad y seguridad. Si necesitas integrar inteligencia artificial en procesos, construir aplicaciones a medida o mejorar tu estrategia de ciberseguridad, en Q2BSTUDIO diseñamos soluciones adaptadas a tu organización.

Palabras clave para posicionamiento

aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi

Conclusión

Comprender el sistema de prototipos es esencial para dominar JavaScript. Aunque la sintaxis moderna de clases hace el código más legible, los prototipos siguen siendo la base. Con estos conceptos podrás crear jerarquías de objetos más eficientes, depurar problemas de herencia y diseñar arquitecturas que aprovechen al máximo las ventajas de JavaScript. Si buscas apoyo profesional para llevar estas ideas a producción, Q2BSTUDIO ofrece experiencia en desarrollo de software a medida, inteligencia artificial y ciberseguridad para ayudarte a transformar tus proyectos en soluciones reales y seguras.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat