函数式编程

纯函数(Pure Function)

输入输出数据流全是显式(Explicit)的函数

副函数

除了返回可能的函数值之外,还对主调用函数产生附加的影响

console.log(有额外输出) ,ajax(无法固定输出)都不是纯函数

为什么一定要纯函数:

副函数强化了程序的能力,却弱化了程序的数学性。让 JS 函数和数学函数的行为对齐。

既:数学化的 JS 函数 === 纯函数

1 拒绝副作用,拥抱纯函数

“一等公民”的本质:JS 函数是可执行的对象

function baseAdd(a) {
  return (b) => {
    return a + b
  };
};

const addWithOne = baseAdd(1)

// .... (也许在许多行业务逻辑执行完毕后)

const result = addWithOne(2)

2 函数是“一等公民”

3 避免对状态的改变(不可变值)

通过深拷贝,保证传递的值

通过持久性存储,实现拷贝,通过部分地址修改拷贝不是万能解药

Proxy 代理模式,在geeter或setter时,触发拷贝。

posted @ 2023-10-26 16:20  MyKai  阅读(12)  评论(0)    收藏  举报