【发布时间】:2019-10-28 23:30:36
【问题描述】:
我一直在不知不觉地在我的 JavaScript 代码中加入函数式方法,但在某些方面仍然难以明确。我对如何在不使用类的情况下管理一些不可变状态感到困惑。
例如,这是我使用过的一个类:
class User {
constructor(id) {
this._ref = db.collection(..).doc(id)
}
getUserData = async => {
const data = await this._ref.get()
return data.map(doc => {
// some transformation
})
}
// .. other functions that use the ref
}
没有任何类方法会改变 ref。
我的问题是使用类是否是糟糕的函数式编程实践?如果是这样,标准的替代方法是什么?我可以考虑将 ID 作为附加参数传递给每个函数。我也研究过咖喱。谢谢!
【问题讨论】:
-
您的问题似乎是在比较苹果和橙子。
-
是的,因为类是 OOP 的基石。 Javascript 是多范式,这可能是该语言最大的弱点,因为不推荐混合范式。
标签: javascript class ecmascript-6 functional-programming