可以用巨量测试用例,在不同环境下反复测试。虽然不能断言每次传入相同参数返回的结果总是一致的函数就是纯函数;但是有传入相同参数却返回不同结果行为的函数一定是有副作用的。理论上这样做的逻辑不是很严谨,然而工程上很多事情都是这样做的。也可以将函数 toString再做静态分析,但凡函数中调用了有副作用的函数,该函数就不是纯函数。这个方法在逻辑上是严谨的,但工程量会比较大,难度之高也不是普通前端开发人员就能搞定的(俺也是普通开发人员)。这两种方法都不建议在运行时使用,因为都会非常耗时。
可以用巨量测试用例,在不同环境下反复测试。虽然不能断言每次传入相同参数返回的结果总是一致的函数就是纯函数;但是有传入相同参数却返回不同结果行为的函数一定是有副作用的。理论上这样做的逻辑不是很严谨,然而工程上很多事情都是这样做的。
也可以将函数
toString
再做静态分析,但凡函数中调用了有副作用的函数,该函数就不是纯函数。这个方法在逻辑上是严谨的,但工程量会比较大,难度之高也不是普通前端开发人员就能搞定的(俺也是普通开发人员)。这两种方法都不建议在运行时使用,因为都会非常耗时。