/* Must easy and elegant way to create classes or complex objects in JavaScript */ (function( window, document ){ function Class( options ){ if( this instanceof Class ){ return Class.fn.init(options); } else { return new Class.fn.init(options); }; }; Class.fn = Class.prototype = { constructor: Class, init: function( options ){ return this; }, myMethodA: function(){}, myMethodB: function(){} }; Class.fn.init.prototype = Class.fn; window.Class = Class; })(window, document);