有没有办法用箭头函数实现方法链接?

Is there a way achieve method chaining with arrow functions?

我一直在尝试链接方法,然后意识到我的示例中的东西不起作用。

var object = {
  method1: () => {
    console.log('method1');
  },
  method2: () => {
    console.log('method2');
  }
};

object.method1(); // works fine
object.method2(); // works fine

object.method1().method2(); // merp

我知道箭头函数没有自己的 this 上下文,所以上面发生的情况是默认设置 window 上下文,当第二种方法尝试触发时,它失败是因为它试图在 window 对象上找到 method2(如果这是对正在发生的事情的错误解释,请纠正我)和 in order to achieve method chaining you have to return this 很自然,这是一个问题。

我知道简单的解决方案很容易使用 function() 而不是上面案例中的箭头函数,但我想知道是否有一种方法可以使用箭头函数实现方法链接,或者这根本不可能?

我读过的相关问题:

也许您可以将 object 作为第一个参数传递给 method1,效果很好。不过不太好看

var object = {
  method1: (a: object) => {
    console.log('method1');
    return a;
  },
  method2: () => {
    console.log('method2');
  }
};


object.method1(object).method2(); // merp