В разделе Функциональный JS мы разобрали один из способов композиции функций — с помощью функции compose.
const double = x => x * 2; const cube = x => x ** 3; const inc = x => x + 1; const foo = compose(double, cube, inc); console.log(foo(2)); // 54
В этой задаче необходимо реализовать композицию в объектно-ориентированном стиле.
const double = x => x * 2; const cube = x => x ** 3; const inc = x => x + 1; const foo2 = inc.pipe(cube).pipe(double); console.log(foo2(2)); // 54
Для этого расширьте стандартный класс Function
новым методом pipe
.