【发布时间】:2021-06-02 14:01:33
【问题描述】:
我正在学习函数式编程。我有一个非常具体的问题。
从技术上讲,类方法可以被视为纯函数吗?
假设我们有一个 add 方法:add(a, b) { return a + b }。 add 方法是纯函数还是应该在类之外声明为纯函数?
【问题讨论】:
-
当然,为什么不呢?
-
只要您不提及
this或外部变量,就可以。 -
@ScottSauyet 你甚至可以引用
this并使用它的属性,只要你不改变它们 -
@ScottSauyet 该参数适用于函数接收作为输入的任何可变对象,无论它是否是该对象的方法。
-
@ScottSauyet 实际上我也是这样做的!每次遇到这样的问题,我都会多加思考。我认为我们所说的都有点正确,因为 JS 不是引用透明的,因此无论如何都没有有意义的纯度定义。我想有些人只是愿意更加确信 JS 中的表达式是纯的,而另一些人则要求更有力的保证。就是这样。
标签: javascript function methods functional-programming