JSFiddle - React, Tailwind, and code Playground
JavaScript
// Define pluginApi function used to construct specific pluginApi instances (one for each plugin)
var pluginApi = function(pluginName) {
return new pluginApi.fn.init(pluginName);
};
// Define pluginApi.fn as an alias to pluginApi prototype
pluginApi.fn = pluginApi.prototype = {
pluginName: null, // Need to check for null in GWT code
// Constructor function
init: function(pluginName) {
this.pluginName = pluginName;
return this;
},
// API function
ready: function() {
window.alert('yay! plugin ' + this.pluginName + ' is ready!');
}
};
// Give the init function the pluginApi prototype for later instantiation
pluginApi.fn.init.prototype = pluginApi.fn;
// Expose pluginApi function as a global object
window.pluginApi = pluginApi;
// ACTUAL TEST CODE
pluginApi('foo').ready();