Herencia en JavaScript?

JavaScript puede ser confuso para los desarrolladores acostumbrados a lenguajes basados en clases.

JavaScript es un lenguaje dinámico y no tiene una implementación de clases (aunque class es una palabra reservada)

Cuando se trata de herencia, JavaScript sólo tiene la estructura de objetos. Cada objeto tiene un lazo a otro objeto llamado prototype