如何将函数式编程的核心理念转化为?

摘要:纯函数(Pure Function) 输入输出数据流全是显式(Explicit)的函数 副函数 除了返回可能的函数值之外,还对主调用函数产生附加的影响 console.log(有额外输出) ,ajax(无法固定输出)都不是纯函数 为什么一定
纯函数(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时,触发拷贝。