Notes on Prototypical Inheritance in JavaScript
Javascript support prototypical inheritance.
What this really means is that a object can inherit properties from another object.
Every object has a [[prototype]] property which is either null or points to another object.

Whenever you refer a method or property on an object, the javascript engine will first look for that property on the object itself. If it doesn't find it, it will look for that property on the object's prototype.
Any object can easily inherit other object by adding reference to the object proto property.

You can use hasOwnProperty method to check if a property is on the object or its prototype.
You can define classes using the class keyword as well and use the extends keyword to inherit from other classes.
This is just syntantical sugar over the prototypical inheritance.