25. 函子总结

1/27/2023 js

# 函子总结

  • 函数式编程的运算不直接操作值,而是由函子完成
  • 函子就是一个实现了mao锲约的对象
  • 我们可以把函子想象成一个盒子,这个盒子里封装了一个值
  • 想要处理盒子中的值,我们需要给盒子的map方法传递一个处理值的函数(纯函数),由这个函数来对值进行处理
  • 最终map方法返回一个包含新值的盒子(函子)
class Container {
  static of(value) {
    return new Container(value)
  }
  constructor(value) {
    this._value = value
  }

  map(fn) {
    return Container.of(fn(this._value))
  }
}
let r =  Container.of(null)  // 传入null会报错。此时没有输出,不是纯函数。
  .map(val => val.toUpperCase())

console.log('r', r)  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
最近更新时间: 2/4/2023, 10:01:08 AM
강남역 4번 출구
Plastic / Fallin` Dild