Mixins, Forwarding, and Delegation in JavaScript
This essay discusses how to separate JavaScript domain properties from object behaviour, without prototypes . This is deliberate. By examining four basic ways to have one object define the behaviour of other objects, we gain insight into what we’re trying to accomplish at a very basic level.