@KirillEX

JS Функции декораторы?

Подскажите пожалуйста, как функции декоратору передается аргументы функции или методу к которому она применяется
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
обертка возвращает функцию с аргументом x. return function(x) {.
Результат выполнения функции decorate - тоже функция, она сохраняется в переменной fac
И вызываете вы потом эту функцию.

function decorator(func) {
  let cache = new Map();
  return function decoratedFunc(x) {
    if (cache.has(x)) {
      return cache.get(x);
    };
    let result = func.call(this, x);
    cache.set(x, result);
    return result
  }
}

obj.fac = decorator(obj.fac); // obj.fac === decoratedFunc
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы