含义:Point Free是一种编程范式,可以把处理数据的细节抽象成与数据无关的组合函数,不需要具体的数据参数,只需要将不同的函数组合起来,借助一些辅助函数进行结果运算
    特点:

    • 不需要指明处理的数据
    • 需要组合函数
    • 借助一些辅助函数进行基本运算

    非Point Free 与 Point Free的编程方式的差异

    1. const fp = require('lodash/fp');
    2. // 非 Ponit Free 明显的数据处理过程;指明处理的数据
    3. function fnc(text){
    4. return text.toLowerCase().replace(/\s+/g, '-')
    5. }
    6. console.log(fnc('Hello World'))
    7. // Point Free 函数组合成运算过程 没有明显的处理数据过程 需要用到一些辅助函数
    8. const f = fp.flowRight(fp.replace(/\s+/g, '-'), fp.toLower)
    9. console.log(f('Hello World'));

    Point Free案例

    1. /**
    2. * 使用Pont Free
    3. * World wild web => W. W. W
    4. */
    5. const fp = require('lodash/fp');
    6. // const firstLetterToUpper = fp.flowRight(fp.join('. '), fp.map(fp.first), fp.map(fp.toUpper), fp.split(' ')) // 简易版
    7. const firstLetterToUpper = fp.flowRight(fp.join('. '), fp.map(fp.flowRight(fp.first, fp.toUpper)), fp.split(' ')) // 优化版
    8. console.log(firstLetterToUpper('World wild web'))