使用 类 作为尝试将纯函数设置为方法的结构
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 有助于代码共享,因为它清楚地将 状态 与其 转换逻辑 分开。我建议考虑您是否真的需要添加所有这些支持代码,或者您可以只使用 state
和 transitions
?
下面的不是一样好吗?可能更清晰?
const rect = { width: 100, height: 500 };
const toRectArea = (rect) => rect.width * rect.height;
const toTriagleArea = (triangle) => toRectArea(trianle) / 2;
通常,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 有助于代码共享,因为它清楚地将 状态 与其 转换逻辑 分开。我建议考虑您是否真的需要添加所有这些支持代码,或者您可以只使用 state
和 transitions
?
下面的不是一样好吗?可能更清晰?
const rect = { width: 100, height: 500 };
const toRectArea = (rect) => rect.width * rect.height;
const toTriagleArea = (triangle) => toRectArea(trianle) / 2;