纯函数

109 阅读1分钟

纯函数定义

确定的输入一定会产生确定的输出,函数在执行过程中不会产生副作用。

举例

//这是一个纯函数
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
  }
}

综上:纯函数不能对外部变量做任何修改,纯函数仅可以对自己的参数做处理,或者在不改变外部变量的情况下使用外部变量。