У меня есть функция, которая делит два входных аргумента:
const divide = (x, y) => {
return x / y;
};
У меня есть вторая функция, которая принимает функцию деления в качестве входного аргумента и возвращает новую функцию.
function test(func) {
return function(){
return func();
}
}
const retFunction = test(divide);
retFunction(24, 3)
Я ожидаю, что возвращаемое значение будет 8 (24/3). Но я получаю возвращаемый вывод «NaN». Что я делаю неправильно?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам нужно передать возможные аргументы в функцию: ...args:
const divide = (x, y) => {
return x / y;
};
function test(func) {
return function(...args) {
return func(...args);
}
}
const retFunction = test(divide);
const result = retFunction(24, 3);
console.info(result);
Стоит отметить, что если вы не находитесь в среде, совместимой с es6, вы делаете
.apply, а не(...args), поэтому вы должны делатьreturn func.apply(null, arguments);вместоreturn func(...args);