@PaladinDobra

Как создать такую обертку-функцию?

Нужна функцию-обертку, которая запоминает все вызовы (аргументы вызова) обернутой ф-ции
5fde5a8a98d73831453093.png

Вот что я набросал но по моему мнению и мнению других хрень полная подскажите в чем проблема?
5fde5aa958c54845790313.png
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
Ничего не понял, но накидал такое вот.
console.clear();

function saveCalls(func) {
  const calls = [];
  
  function proxy(...args) {
    var ctx = this;
    
    calls.push({
      ctx: ctx,
      args: args,
    });
    
    return func.apply(ctx, args);
  }
  
  proxy.calls = calls;
  
  return proxy;
}

function sum(a, b) {
  return a + b;
}

const saveSum = saveCalls(sum);

console.log(saveSum(5, 10));
console.log(saveSum(3, 1));
console.log(saveSum.calls);

const user = {
  name: 'john',
  say() {
    return this.name;
  },
};

const saveSay = saveCalls(user.say);

console.log(saveSay.call(user));
console.log(saveSay.calls);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы