Herencia en JavaScript

La herencia es un concepto importante en la programación orientada a objetos. En la herencia clásica, los métodos de la clase base se copian en la clase derivada.

En JavaScript, la herencia se apoya en el uso del objeto prototipo. Algunos lo llaman «Inherencia prototípica» y otros lo llaman «Delegación de comportamiento».

Veamos cómo podemos conseguir una funcionalidad similar a la herencia en JavaScript utilizando el objeto prototipo.

Comencemos con la clase Persona que incluye la propiedad FirstName & LastName como se muestra a continuación.

En el ejemplo anterior, hemos definido la clase Persona (función) con las propiedades FirstName & LastName y también hemos añadido el método getFullName a su objeto prototipo.

Ahora, queremos crear la clase Student que herede de la clase Person para no tener que redefinir los métodos FirstName, LastName y getFullName() en la clase Student. La siguiente es una clase Student que hereda de la clase Person.

Nota que hemos establecido Student.prototype a un objeto persona recién creado. La palabra clave new crea un objeto de la clase Persona y también asigna Person.prototype al objeto prototipo del nuevo objeto y finalmente asigna el objeto recién creado al objeto Student.prototype. Opcionalmente, también se puede asignar Person.prototype al objeto Student.prototype.

Ahora, podemos crear un objeto de Estudiante que utilice propiedades y métodos de Persona como se muestra a continuación.

Así podemos implementar la herencia en JavaScript.