0

Как известно синтаксис функции apply: func.apply(context, [arg1, arg2]); Как будет выглядеть кастомная функция, которая принимает контекст, аргументы в массиве и передает ее в другую функцию?

Kromster
  • 13,809
  • 1
    вопрос о полифиле или о нативной реализации в конкретном движке? – Grundy Jul 25 '18 at 06:46

1 Answers1

1

Для установки контекста есть несколько способов.

Например можно воспользоваться методом bind

В этом случае реализация может быть следующей:

function apply2(func, context, args) { // функция принимает саму функцию, новый контекст, и массив параметров, которые необходимые передать 
  var wrapper = func.bind(context); // привязываем контекст
  return wrapper(...args); // выполняем с привязанным параметром и переданными аргументами
}

function test(a, b) { return this.a + a + b; }

console.log(apply2(test, { a: 1 }, [2, 3]));

Grundy
  • 81,538