...lässt sich das irgendwie auch außerhalb von Objekten replizieren?
Es wird zur Zeit der sogenannte Pipeline-Operator diskutiert, der soll genau das leisten. Deine Verkettung sähe damit so aus:
let allInOneGo = 1 |> addOne |> timesTwo |> minusSeven
Für Babel gibt es auch schon ein experimentelles Plugin, damit kannst du den Operator heute schon benutzen.
Alternativ, kann man sich mit einer eigenen Funktion Abhilfe schaffen:
function pipe(x, ...fs) {
return fs.reduce((x,f) => f(x), x)
}
Die pipe
-Funktion ist innerhalb der Functional Programming Community in JavaScript recht weit verbreitet. Anwenden lässt sie sich wie folgt:
let allInOneGo = pipe(1, addOne, timesTwo, minusSeven)