什么是副作用?
--- 副作用就是:函数或者表达式 在局部环境中,修改了某些变量的值(改变了外部环境的变量值)
什么是纯函数?
---1、函数返回的结果只依赖入参
例如:const a = 1
const foo = (b) => a + b // 这不是一个纯函数,他的返回结果还依赖外部变量a
foo(2) // => 3
const foo = (a, b) => a + b // 这是一个纯函数,他的返回结果只依赖入参
foo(1,2) // => 3
---2、函数执行过程中,不会产生副作用,也就是说不产生 计算之外的多余的操作
例如: const foo = ( obj, b ) {
obj.x = 2 // 这就产生了副作用, 修改了外部环境中 变量obj的属性x的值
return obj.x + b
}
const obj = { x: 1 }
foo( obj, 3 ) // 5
obj.x // 2
原文地址: https://blog.csdn.net/c_kite/article/details/79138814