The Mixin Pattern
http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mixinpatternjavascript
/* Car Class */ var Car = function(settings){ this.model = settings.model || 'no model provided'; this.colour = settings.colour || 'no colour provided'; }; /* Mixin Class */ var Mixin = function(){}; Mixin.prototype = { driveForward: function(){ console.log('drive forward'); }, driveBackward: function(){ console.log('drive backward'); } }; /* Augment existing class with a method from another class */ function augment(receivingClass, givingClass) { /* only provide certain methods */ if (arguments[2]) { for (var i=2, len=arguments.length; i