纯函数定义
确定的输入一定会产生确定的输出,函数在执行过程中不会产生副作用。
举例
//这是一个纯函数
function foo(num1, num2) {
return num1 + num2;
}
//这不是一个纯函数,它修改了外部变量
var num= 10;
function sum(num1,num2) {
num = 20;
return num + num1 + num2;
}
//这不是一个纯函数, 因为我们修改了传入的参数
var info = {
age: 10
}
function bar(info) {
info.age = 20;
}
//这是一个纯函数,他没有对外部变量修改
var info = {
age: 10
}
function baz(info) {
return {
...info,
age: 100
}
}
综上:纯函数不能对外部变量做任何修改,纯函数仅可以对自己的参数做处理,或者在不改变外部变量的情况下使用外部变量。