Recent Update has made it so this is as fast as Object.assign and Object.create so ignore what i say at the beginning of the video.

Video on how to use module, Why to use, and when to use.

Why would i use this?

Not having to bind to all the methods of a class. Some of my classes i had created for React require me to bind to 20+ methods and if i forget any it can cause a crash if i need access to “this” in the method.

It uses an Object.assign forked method that Microsoft recommends for when you use getters and setters on the Objects. If you are only going to be one level deep and don't care to inherit the methods from the base Object and you don't have getters or setter then Object.Assign would work just fine.

It also makes sure to keep the inheritance chain, which means if you inherit from 5 classes you can always call the base classes method.

Heres a short Stack Overflow Question on why to use OLOO over Prototype Design for Example. Oloo va Prototype Design

An even longer explanation is available in Kyle Simpsons book You Don’t Know JS on Objects.

How the module is implemented.