JavaScriptでメソッドチェーンを実装する方法

ライブラリでよくメソッドチェーンを見かけるのでどうやって実装してるんだろう、と思って調べてみたのでメモ。
やり方は簡単でメソッドの最後に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('🍑').add('🍌').add('🍑').getFruits();
console.log(fruits); // 🍑🍌🍑