docs: function(
      val, predefinedColors, fallbackColor, fallbackFormat, hexNumberSignPrefix) {
      this.fallbackValue = fallbackColor ?
        (
          (typeof fallbackColor === 'string') ?
          this.parse(fallbackColor) :
          fallbackColor
        ) :
        null;
  
      this.fallbackFormat = fallbackFormat ? fallbackFormat : 'rgba';
  
      this.hexNumberSignPrefix = hexNumberSignPrefix === true;
  
      this.value = this.fallbackValue;
  
      this.origFormat = null; // original string format
  
      this.predefinedColors = predefinedColors ? predefinedColors : {};
  
      // We don't want to share aliases across instances so we extend new object
      this.colors = $.extend({}, Color.webColors, this.predefinedColors);
  
      if (val) {
        if (typeof val.h !== 'undefined') {
          this.value = val;
        } else {
          this.setColor(String(val));
        }
      }
  
      if (!this.value) {
        // Initial value is always black if no arguments are passed or val is empty
        this.value = {
          h: 0,
          s: 0,
          b: 0,
          a: 1
        };
      }
    }