Задать вопрос
@KirillEX

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

Подскажите пожалуйста, как функции декоратору передается аргументы функции или методу к которому она применяется
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Простой 11 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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