code: function Class() {
  
          // Exit constructing if being applied as prototype
          if (constructing) {
              return;
          }
  
          // Reset (clone) the array and object properties else they will be referenced between instances
          for (var key in this) {
              var value = this[key],
                  type = $.type(value);
  
              if (type === 'array') {
                  this[key] = value.slice(0); // Clone array
  
              } else if (type === 'object') {
                  this[key] = $.extend(true, {}, value); // Clone object
              }
          }
  
          // Set the UID and increase global count
          this.uid = Class.count += 1;
  
          // Generate the CSS class name and attribute/event name based off the plugin name
          var name = this.name;
  
          if (name) {
              this.cssClass = name.replace(/[A-Z]/g, function(match) {
                  return ('-' + match.charAt(0).toLowerCase());
              }).slice(1);
  
              // Generate an attribute and event key name based off the plugin name
              this.keyName = name.charAt(0).toLowerCase() + name.slice(1);
          }
  
          // Trigger constructor
          if (constructor) {
              constructor.apply(this, arguments);
          }
      }
docs: Class interface