概念
1、一个函数的参数 是一个函数
1 | function a(){ |
2、一个函数 返回一个函数
1 | function a(){ |
简单应用
函数的before
需求:在“说话”之前要有其他的操作,可以直接在say函数中todo
1 | const say = () => { |
现在希望将函数的核心部分提取出来 在外面增加功能
1 | const say = () => { |
在原型上添加before方法
1 | Function.prototype.before = function(beforeFn){ // 函数的参数是函数 高阶函数 |
合在一起如下:
1 | Function.prototype.before = function(beforeFn){ |
这就是AOP 面向切片编程 或者叫装饰 我们给say方法装饰了一些自己独特的逻辑 这个就是一个典型的高阶函数的使用。
AOP的思想:把核心抽离出来 在核心基础上增加功能。
拓展:添加参数
1 | Function.prototype.before = function(beforeFn){ |