Функция должна сохранить массив передаваемых параметров
Как сделать чтобы функция возвращала массив передаваемых другой функцией параметров в одном массиве?
У меня на выходе получается: [ [ 1, 2 ] ] [ [ 3, 4 ] ] undefined Код: function saveCalls(obj) { const callsHistory = (arg1, arg2) => new Array([arg1, arg2]); return callsHistory; } // example 1 function sum(firstNum, secondNum) { return firstNum + secondNum; } const sumWithMemory = saveCalls(sum); console.log(sumWithMemory(1, 2)); // ===> 3 console.log(sumWithMemory(3, 4)); // ===> 7 console.log(sumWithMemory.callsHistory); // ===> [ [1, 2], [3, 4] ] |
NovichokJS,
:-? function saveCalls(fun) { let callsHistory = []; const f = (...arg) => { callsHistory.push(arg); return fun(...arg); }; f.callsHistory = callsHistory; return f } // example 1 function sum(firstNum, secondNum) { return firstNum + secondNum; } const sumWithMemory = saveCalls(sum); console.log(sumWithMemory(1, 2)); // ===> 3 console.log(sumWithMemory(3, 4)); // ===> 7 console.log(sumWithMemory.callsHistory); // ===> [ [1, 2], [3, 4] ] |
круто, я думал что без слова this тут никак
|
просьба обяснить что значит выражение f.callsHistory = callsHistory;
|
Цитата:
для понимания ... function saveCalls(fun) { let arr = []; const f = (...arg) => { arr.push(arg); return fun(...arg); }; f.callsHistory = arr; return f } // example 1 function sum(firstNum, secondNum) { return firstNum + secondNum; } const sumWithMemory = saveCalls(sum); console.log(sumWithMemory(1, 2)); // ===> 3 console.log(sumWithMemory(3, 4)); // ===> 7 console.log(sumWithMemory.callsHistory); // ===> [ [1, 2], [3, 4] ] |
спасибо, понял. Не знал что там даже можно.
|
Часовой пояс GMT +3, время: 06:38. |