whole_func_string: function classOfIs (obj, type) {
          var classOfType = classOf(type),
              typeIsFunction = type instanceof Function;
          if (classOfType !== String.name && !typeIsFunction) {
              throw new TypeError('sjl.classOfIs expects it\'s `type` parameter to' +
                  'be of type `String` or an instance of `Function`.  Type received: ' + classOfType + '.');
          }
          return (typeIsFunction ? obj instanceof type : false) ||
              classOf(obj) === (classOfType === _String ? type : type.name);
      }
func_code_string: function classOfIs (obj, type) {
          var classOfType = classOf(type),
              typeIsFunction = type instanceof Function;
          if (classOfType !== String.name && !typeIsFunction) {
              throw new TypeError('sjl.classOfIs expects it\'s `type` parameter to' +
                  'be of type `String` or an instance of `Function`.  Type received: ' + classOfType + '.');
          }
          return (typeIsFunction ? obj instanceof type : false) ||
              classOf(obj) === (classOfType === _String ? type : type.name);
      }
func_documentation_string: Checks to see if an object is of type 'constructor name'.
  Note: If passing in constructors as your `type` to check, ensure they are *'named' constructors
  as the `name` property is checked directly on them to use in the class/constructor-name comparison.
  *'named' constructors - Not anonymous functions/constructors but ones having a name:  E.g.,
  ```
  (function Hello () {}) // Named function.
  (function () {}) // Anonymous function.
  ```
  @function module:sjl.classOfIs
  @param obj {*} - Object to be checked.
  @param type {String|Function} - Either a constructor name or an constructor itself.
  @returns {Boolean} - Whether object matches class string or not.