The great thing about JavaScript is the ability to do away with the hard rules of classical inheritance and let objects inherit properties from other objects.
Classical Inheritance: A constructor function instantiates an instance via the “new” keyword. This new instance acquires properties from a parent class.
Prototypal Inheritance: An instance is created by cloning an existing object that follows as a prototype. This instance often represented using a factory function or “Object.create()” can benefit from selective inheritance from many different objects.