Herencia con prototipos en JavaScript

 Todos los objetos de javascript, incluso el más básico que podemos crear mediante el literal, tiene una propiedad especial que se llama prototipo. Esta propiedad es un objeto que, por defecto, contiene una serie de propiedades como, por ejemplo, la función.

Lo interesante y especial del prototipo es que cuando pedimos al objeto una propiedad que no forma parte directamente de él, es decir, que no la hemos añadido cuando creamos el objeto, el intérprete de javascript busca en el prototipo del objeto dicha propiedad, y si la encuentra la devuelve como si fuera una propiedad del objeto.

Las propiedades que añadimos a un objeto cuando lo creamos se denominan propiedades propias del objeto (own properties). Dada una propiedad del objeto, podemos saber si es propia o adquirida a través del prototipo usando la función que todos los objetos tienen, precisamente a través de sus prototipos.

Por ello un objeto, además de tener las propiedades que le corresponde en el momento de su creación, tiene también propiedades a través de su prototipo. Y este mecanismo es la base para la implementación de la herencia en javascript.

En los vídeos que siguen explicamos en detalle qué es el prototipo y como usarlo para implementar la herencia con javascript.

 En este primer vídeo sobre el prototipo explicamos con detalle qué es y como se puede modificar para construir la cadena de prototipos, que esencialmente es un prototipo que tiene entre sus propiedades otro prototipo que, a su vez, puede tener otro prototipo y así hasta que se llegue a un prototipo final. 
En este segundo vídeo se trata el tema del prototipo en funciones constructoras.
La idea de prototipo es muy potente pero a la vez puede resultar muy extraña y novedosa para el que se enfrenta por primera vez a ella. En este vídeo mostramos algunas indicaciones y observaciones que conviene tener en cuenta cuando se usa el prototipo.