function baseZipObject(props, values, assignFunc) {
      var index = -1,
          length = props.length,
          valsLength = values.length,
          result = {};

      while (++index < length) {
        var value = index < valsLength ? values[index] : undefined;
        assignFunc(result, props[index], value);
      }
      return result;
    }
This base implementation of `_.zipObject` which assigns values using `assignFunc`.

@private
@param {Array} props The property identifiers.
@param {Array} values The property values.
@param {Function} assignFunc The function to assign values.
@returns {Object} Returns the new object.