Method chaining is the practice of calling different methods in a single line in object-oriented programming languages. Each method returns an object, meaning the calls can be chained together in a single line without requiring variables to store the results. Method chaining is used to eliminate an extra variable for each intermediate step, making it a simpler process and avoiding repetition. The developer no longer has to name the variable and keep it in mind.
Method chaining can be used as a convenient way to build value types, especially for a builder pattern. It can be used to implement fluent interfaces, which is an object-oriented API that extensively relies on method chaining. Fluent interfaces provide developers with a mechanism for calling methods on classes that are easily readable and can be used to build small domain-specific languages. It also allows for operation on the object through methods without breaking the flow over and over by repeating the object.
A drawback of using method chaining is that it takes away the ability to return any other value from methods since it must return the object the method was invoked on.
A popular and simple example is iostream (Standard Input/Output Stream) in the high-level programming language C++. << returns the left objects, which allows for chaining.
What started as:
a << b << c;
is now:
a << b;
a << c;
In JavaScript, the built-in methods of Array are used:
somethings
.filter(x => x.count > 10)
.sort((a, b) => a.count – b.count)
.map(x => x.name)