使用 类 作为尝试将纯函数设置为方法的结构

Using classes as structures trying to set pure functions as methods

通常,JavaScript中的类是这样显示的:

class Rectangle {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }
  get area() {
    return this.calcArea();
  }
  calcArea() {
    return this.height * this.width;
  }
}

作为函数式编程的爱好者和想要使代码可扩展的人,我很想为整个应用程序改用这样的代码:

calcArea({height, width}) {
    return height * width;
  }

class Rectangle {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }
  get area() {
    return calcArea(this);
  }
}

基本将类转化为结构体,将所有方法及其相关功能抽象出来。这样我就可以轻松导出 calcArea 函数 这是否有意义,我想听听对此的一些想法,是否有关于这些架构方法的好文章? 谢谢

FP 有助于代码共享,因为它清楚地将 状态 与其 转换逻辑 分开。我建议考虑您是否真的需要添加所有这些支持代码,或者您可以只使用 statetransitions?

下面的不是一样好吗?可能更清晰?

const rect = { width: 100, height: 500 };

const toRectArea = (rect) => rect.width * rect.height;
const toTriagleArea = (triangle) => toRectArea(trianle) / 2;