“纯函数”这个概念个人觉得适用与所有的语言。
什么是纯函数,纯函数有两个重要的标准,违反任何一个都不是纯函数;
1、函数的返回结果只依赖于它传入的参数。
2、函数执行过程里面没有副作用。
例如:
const fun = (a, b) => a + b;
返回就是a加b的和,符合以上两个标准,返回结果永远是可预料的,程序运行中不会有副作用
再例如:
const obj = {};
const fun = (obj,b) =>{
obj._age = 18;
return obj._age +b;
}
这个虽然返回永远是18+b,但是有副作用,修改或者新增了obj这个对象的_age属性值,有无法预估的影响。
总结:
1、纯函数很严格,也就是说你几乎除了计算数据以外什么都不能干,计算的时候还不能依赖除了函数参数以外的数据。
2、一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。