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');
}
});