You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21 regels
714 B

4 jaren geleden
  1. /**
  2. * A faster alternative to `Function#apply`, this function invokes `func`
  3. * with the `this` binding of `thisArg` and the arguments of `args`.
  4. *
  5. * @private
  6. * @param {Function} func The function to invoke.
  7. * @param {*} thisArg The `this` binding of `func`.
  8. * @param {Array} args The arguments to invoke `func` with.
  9. * @returns {*} Returns the result of `func`.
  10. */
  11. function apply(func, thisArg, args) {
  12. switch (args.length) {
  13. case 0: return func.call(thisArg);
  14. case 1: return func.call(thisArg, args[0]);
  15. case 2: return func.call(thisArg, args[0], args[1]);
  16. case 3: return func.call(thisArg, args[0], args[1], args[2]);
  17. }
  18. return func.apply(thisArg, args);
  19. }
  20. module.exports = apply;