Как выглядит изнутри нативная функция apply?

187
24 сентября 2018, 19:00

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

Answer 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]));

READ ALSO
Как обратиться к this.$store с компонента в nuxt?

Как обратиться к this.$store с компонента в nuxt?

Я создаю хранилище Classic mode, как написано в докахВ компоненте страницы обращение к this

156
Mermaid.js: изменить отступы между нодами графа

Mermaid.js: изменить отступы между нодами графа

Подскажите, как используя Mermaid Библиотеку:

170
После append обновить содержимое окна

После append обновить содержимое окна

Есть корзина на js в которой товары добавляются методом append

167
Управление запросами LoadingObjectManager

Управление запросами LoadingObjectManager

LoadingObjectManager отличная штука, единственное что непонятно - как предотвратить большое кол-во запросов к серверу с метками при зуме карты? Даже...

130