函数式编程是一种编程典范,最重要的是函数可以当参数,函数也可以当返回值。比如下面这个例子:
function hello() {
console.log('hello, I love react')
}
function WrapperHello(fn) {
return function() {
console.log('before say hello')
fn()
console.log('after say hello')
}
}
hello = WrapperHello(hello)
hello()
上面这句 hello = WrapperHello(hello)
把 hello() 这个函数装饰了一次,这种设计模式称为装饰器模式,这也是 React 中的高阶组件(HOC)实现的基础。