JSFiddle - React, Tailwind, and code Playground

by Chase Wilson

JavaScript

var Module = (function(){
    var proto = {
        create : function(namespace,properties) {
           var newModule = Module.ns(namespace);
           newModule = new Class(properties);
           return newModule;
        },
        ns: function( str , base ){
            if(!str) return;
            if(str.indexOf("::") != -1){
                var shards = str.split("::");
                base = window[shards[0]] = window[shards[0]] || {};
                str = shards[1];
            };
            str = str.split('.');        
            base = base || (window.MooTools?MooTools:window);
            console.log(base);
            var i = 0, lng = str.length;
            for(;i<lng;i++){
                base = base[str[i]] = base[str[i]] || {};
            }
            return base;
        }
    };
    
    function M (){
        if(arguments.length){
            return proto.create(arguments);
        }
    }
    M.create = proto.create;
    M.ns = proto.ns;
    M.prototype = proto;
    return M;
})();  

var ClassName = new Module('AGRO::ClassName',{
    initialize: function(){
      alert('Hello');
    }
});