OOjs

OOjs (short for "Object-oriented JavaScript") is a JavaScript library for working with objects. Key features include inheritance, mixins and additional utilities for working with objects and arrays. It also implements an EventEmitter mixin for event-driven programming, and a Factory pattern for decoupling consumers of functionality from any particular class's implementation.