JavaScript 中的“纯函数”

696 查看

什么是“纯函数”

纯函数是指不依赖于且不改变它作用域之外的变量状态的函数。

也就是说,纯函数的返回值只由它调用时的参数决定,它的执行不依赖于系统的状态(比如:何时、何处调用它——译者注)。

纯函数是函数式编程的一个基础。

来看一些例子:

在上面的代码中,我们改变了参数对象中的一个属性。由于我们定义的函数改变的对象在我们的函数作用域之外,导致这个函数成为“不纯”的函数。

上面的代码,我们只计算了作用域内的局部变量,没有任何作用域外部的变量被改变,因此这个函数是“纯函数”。

上面的代码里,b 不在作用域中,函数执行结果依赖于上下文环境,因此函数也是“不纯”的。

上面这样改就成了“纯函数”。

具体应用

考虑以下代码:

我们看一下在一个实际项目中的代码例子: