Как задать пользовательское свойство функции через обертку(wrapper)? JavaScript
Есть некая функция sum(a, b). Через функцию обертку (wrapper(func)) хочу добавить начальной функции пользовательское свойство calls, пусть это будет условный массив.
При добавлении этого свойства через func.calls или this.calls при вызове этого свойства выводит undefined. Почему так? Как задать это свойство через wrapper(func) правильно?
function sum(a, b) {
alert(a + b);
}
function wrapper(func) {
return function(a, b) {
//func.calls = [1,2,3];
this.calls = [1, 2, 3]
func(a, b);
};
}
sum = wrapper(sum);
console.log(sum.calls); //undefined
Ответы (1 шт):
Автор решения: EzioMercer
→ Ссылка
Можно сразу установить поля для func, которая приходит на вход и его же вернуть:
function sum(a, b) {
console.log(a + b);
}
function wrapper(func) {
func.calls = [1, 2, 3];
return func;
}
sum = wrapper(sum);
console.log(sum.calls);
sum(1, 2);