1unitedpower: Replikation von Method Chaining außerhalb von Objekten?

Beitrag lesen

...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)