ライブラリでよくメソッドチェーンを見かけるのでどうやって実装してるんだろう、と思って調べてみたのでメモ。
やり方は簡単でメソッドの最後にreturn this
で自分自分を返すだけ。this
が返ってくるのでクラス内のメソッドを再度実行できるということですね。
サンプルコード
class Fruit {
constructor() {
this.fruits = '';
}
add = (fruit) => {
this.fruits = `${this.fruits}${fruit}`;
return this;
};
getFruits = () => {
return this.fruits;
};
}
const fruits = new Fruit().add('Apple').add('Banana').add('Peach').getFruits();
console.log(fruits); // AppleBananaPeach