Представим, что у меня есть функция для обработки requestIdleCallBack и функция приветствия:
const requestIdle = (func, timeout) => {
if ('requestIdleCallback' in window) {
timeout = timeout ? {timeout} : null
return window.requestIdleCallback(func, timeout)
} else {
func()
return null
}
}
const greeting = ({firstName, lastName}) => {
console.info(`Hello ${firstName} ${lastName}`)
}
Затем я хочу вызвать функцию greeting во время простоя. Итак, код такой:
const requestIdleAndGreet = ({firstName, lastName}) => {
requestIdle(() => greeting({firstName, lastName}))
}
Вот мой вопрос: есть ли помощник vanilla / jquery / lodash ..., который мог бы действовать как функция «обертывания» для greeting({firstName, lastName})? Что-то вроде этого :
const wrapper = (func, ...args) => {
return () => {
func(...args)
}
}
const requestIdleAndGreet = ({firstName, lastName}) => {
requestIdle(wrapper(greeting, {firstName, lastName}))
}



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


Стандартный метод bind может это сделать:
const requestIdleAndGreet = ({firstName, lastName}) =>
requestIdle(greeting.bind(null, {firstName, lastName}));
Первый аргумент bind - это значение this для связанной функции, остальные связывают параметры.
Большое спасибо ! Я не знал об этом использовании метода bind
Это просто из эстетических соображений или почему вы хотите его обернуть?