关于javascript:JavaScript中的纯函数

6次阅读

共计 749 个字符,预计需要花费 2 分钟才能阅读完成。

先说一下函数返回后果的确定性和不确定性,察看以下两个函数

function sum(a,b){return a + b;}
let res = sum(1,2); // 3

let num = 1;
function sum2(a,b){return a + b + num;}
res = sum2(1,2); // 4 

这两个函数的次要区别在于 sum2 依赖了一个内部变量 num,当这个内部变量发生变化之后,sum2 函数参数不变时,返回后果也会发生变化,那么 sum2 函数存在不确定性。

再察看上面这个函数

function sum3(a,b){return a + b + Math.random();
} 

因为 Math.random 返回的后果是个随机数,那么 sum3 函数返回的后果也是不确定的,即 sum3 函数也存在不确定性。

而后说一下函数的副作用,察看以下两个函数

function sum(a,b){return a + b;}
let res = sum(1,2); // 3

let num = 1;
function sum2(a,b){
    num = 2;
    return a + b;
}
let res2 = sum2(num,2); // 5
console.log(num); // 2 

能够看到 sum2 函数导致了内部的变量产生了变动,这个就是副作用,副作用并不是毒药,某些时候往往是必须的。

通过以上的几行简略的代码咱们能够理解到,有些函数的输入后果只依赖于输出的参数,并且没有副作用,这种函数咱们称之为纯函数。

纯函数有利于测试和重构

应用纯函数的一个次要益处是它们能够间接测试。如果传入雷同的参数,它们将始终产生雷同的后果。

同时纯函数还使得保护和重构代码变得更加容易。你能够释怀地重构一个纯函数,不用放心没留神到的副作用搞乱了整个利用而导致终调试天堂。

正确地应用纯函数能够产生更加高质量的代码。并且也是一种更加洁净的编码方式。

正文完
 0