math.random是非纯函数问题

在redux的文档中,有提到reducer中应该严格使用纯函数

其中特地举了一个反例,说Math.random()和Date.now()等非纯函数不应该被使用

比较困惑为什么Math.random和Date.now是非纯函数

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

希望大家指教

阅读 2.7k
2 个回答

clipboard.png

Its return value is the same for the same arguments
Math.random( )为例,相同输入,都为空,但是不同时间获取的值不一样,就不能满足纯函数要求的第一点:相同的输入必须有相同的输出

推荐问题