const Fn = (x) => (...args) => {
for (let key in x) {
let val = x[key];
if (typeof val === 'function') {
x[key] = val(...args);
}
else {
x[key] = Fn(val)(...args);
}
}
return x;
};
let test = {
a: {
b: (a, b, c) => a + b + c,
c: (a, b, c) => a + b - c,
},
d: (a, b, c) => a - b - c
};
console.log(Fn(test)(1, 1, 1));