Как сделать так что-бы декоратор функции принимал пару аргументов?
Function.prototype.defer = function(ms){
setTimeout(this, ms);
};
f.defer(1000)(1, 2);
Нужно чтобы декоратор принимал аргументы, которые находятся в разных скобках.
Ответы (2 шт):
Автор решения: Dmitrii Sedov
→ Ссылка
Ну к примеру так. Верните функцию и далее вызовите её! Так же можете использовать стрелочную функцию чтобы не терять контекст:
Function.prototype.defer = function(ms){
/*setTimeout(this, ms);*/
console.log('parent ms', ms)
return (a, b) => {
console.log('second params', a, b);
console.log('child ms from parent', ms);
};
};
Function.defer(1000)(1, 2);
Автор решения: CoderMotive
→ Ссылка
Function.prototype.defer = function(ms) {
let f = this;
return function(...args) {
setTimeout(() => f.apply(this, args), ms);
}
};