纯函数
- 确定性
- 无副作用
- 如果外部产生会影响,那就是有副作用了
- 不会修改输入或产生其他可观察到的影响
- 相同的输入下,始终产生相同的输出
判断以下是否是纯函数
// 不是纯函数,cb回调函数,可能会产生影响
function sum(a,b,cb){
return a + b + cb()
}
// 纯函数
function sum(a,b){
return a + b
}
// 不是纯函数,改变了输入的对象
function sum(a,b){
return a.n++ + b.n++
}