含义:Point Free是一种编程范式,可以把处理数据的细节抽象成与数据无关的组合函数,不需要具体的数据参数,只需要将不同的函数组合起来,借助一些辅助函数进行结果运算
特点:
- 不需要指明处理的数据
- 需要组合函数
- 借助一些辅助函数进行基本运算
非Point Free 与 Point Free的编程方式的差异
const fp = require('lodash/fp');// 非 Ponit Free 明显的数据处理过程;指明处理的数据function fnc(text){return text.toLowerCase().replace(/\s+/g, '-')}console.log(fnc('Hello World'))// Point Free 函数组合成运算过程 没有明显的处理数据过程 需要用到一些辅助函数const f = fp.flowRight(fp.replace(/\s+/g, '-'), fp.toLower)console.log(f('Hello World'));
Point Free案例
/*** 使用Pont Free* World wild web => W. W. W*/const fp = require('lodash/fp');// const firstLetterToUpper = fp.flowRight(fp.join('. '), fp.map(fp.first), fp.map(fp.toUpper), fp.split(' ')) // 简易版const firstLetterToUpper = fp.flowRight(fp.join('. '), fp.map(fp.flowRight(fp.first, fp.toUpper)), fp.split(' ')) // 优化版console.log(firstLetterToUpper('World wild web'))
