JavaScript y Herencia Basada en PrototiposAutor: Erik GrueterPublicado en : SG #51Sección: Programación
Este artículo fue traducido y editado por SG con el permiso del autor a partir de la versión original en inglés disponible en http://www.masterjavascript.io/blog/2016/05/29/introducing-javascript-classes .
Para los programadores que vienen de lenguajes basados en clases, como Java o Ruby, JavaScript puede ser un poco confuso.
A diferencia de estos lenguajes, Javascript es dinámico y no provee una implementación de clase como tal. Para soportar herencia, JavaScript solo tiene un constructo: Object. Cada objeto tiene una referencia a otro objeto, llamado su prototipo.
Aunque esto pueda parecer una debilidad, en realidad este modelo de herencia basada en prototipos es muy poderoso. En este artículo explicaré como funciona la herencia en JavaScript y la cadena de prototipos.
Herencia de propiedades
Los objetos en JavaScript no son más que estructuras de datos con varias propiedades. Cada objeto apunta tiene una referencia a su objeto padre, o prototipo.
Al intentar acceder una propiedad en un objeto, la propiedad se busca primero en el objeto, y si no se encuentra se procede a buscar la propiedad en el prototipo del objeto original, y si no se encuentra se busca en el prototipo del prototipo, y así subsecuentemente hasta que se encuentre la propiedad o se llegue al final de la cadena.
El listado 1 muestra un ejemplo de este caso.Listado 1. Herencia de propiedades.
Herencia de “métodos”
En realidad, Javascript no tiene métodos como los de los lenguajes de programación basados en clases. En JavaScript, cualquier función se puede agregar a un …