今天谈谈纯函数和不纯函数
纯函数的定义是:
-
如果函数的调用参数相同,则永远返回相同的结果。它不依赖于程序执行期间函数外部任何状态或数据的变化,必须只依赖于其输入参数。
-
该函数不会产生任何可观察的副作用,例如网络请求,输入和输出设备或数据突变(mutation)。
这就是纯的函数。 如果一个函数符合上述 2 个要求,它就是纯函数。反之则不是纯函数;
例子说明:
例子1:function priceAfterTax(productPrice) { return (productPrice * 0.20) + productPrice;}
priceAfterTax这个函数的结果只依赖形参productPrice,不依赖于任何外部输入,不改变任何外部数据、没有副作用。
所以说,这个是纯函数;
例子2:
var tax = 20;
function calculateTax(productPrice) { return (productPrice * (tax/100)) + productPrice; }
priceAfterTax这个函数的结果,取决于外部定义的变量tax,而纯函数不能依赖外部变量。它没有满足定义中的第一个要求,因此这个函数是不纯的。
浙公网安备 33010602011771号