_baseInvoke.js 787 B

123456789101112131415161718192021222324
  1. import apply from './_apply.js';
  2. import castPath from './_castPath.js';
  3. import last from './last.js';
  4. import parent from './_parent.js';
  5. import toKey from './_toKey.js';
  6. /**
  7. * The base implementation of `_.invoke` without support for individual
  8. * method arguments.
  9. *
  10. * @private
  11. * @param {Object} object The object to query.
  12. * @param {Array|string} path The path of the method to invoke.
  13. * @param {Array} args The arguments to invoke the method with.
  14. * @returns {*} Returns the result of the invoked method.
  15. */
  16. function baseInvoke(object, path, args) {
  17. path = castPath(path, object);
  18. object = parent(object, path);
  19. var func = object == null ? object : object[toKey(last(path))];
  20. return func == null ? undefined : apply(func, object, args);
  21. }
  22. export default baseInvoke;