code: function (a, b, /*internal use*/mismatchKeys, /*internal use*/mismatchValues) {
                  // inspired by jasmine
                  mismatchKeys = mismatchKeys || [];
                  mismatchValues = mismatchValues || [];
  
                  if (a === b) {
                      return TRUE;
                  }
                  if (a === undefined || a === null || b === undefined || b === null) {
                      // need type coercion
                      return a == null && b == null;
                  }
                  if (a instanceof Date && b instanceof Date) {
                      return a.getTime() == b.getTime();
                  }
                  if (typeof a == 'string' && typeof b == 'string') {
                      return (a == b);
                  }
                  if (typeof a==='number' && typeof b==='number') {
                      return (a == b);
                  }
                  if (typeof a === 'object' && typeof b === 'object') {
                      return compareObjects(a, b, mismatchKeys, mismatchValues);
                  }
                  // Straight check
                  return (a === b);
              }
docs: Checks to see whether two object are equals.
  @param a 比较目标1
  @param b 比较目标2
  @param [mismatchKeys] internal usage
  @param [mismatchValues] internal usage
  @return {Boolean} a.equals(b)
  @member KISSY