让前端飞jsWeb前端之路

AOP(面向切片编程)

2019-06-10  本文已影响3人  CRUD_科科

高阶函数

要理解AOP,那么首先要了解高阶函数,成为高阶函数需要两个条件:

AOP

面向切片编程,即把代码二次封装,在不破坏原有逻辑的基础上,插入自己的逻辑,下面看个例子,在原有的say函数中添加新逻辑:

// 现在有一个say函数,调用他会打印‘say~~’
function say(a, b) {
  console.log('say~~', a, b);
}
// 如果我们想在say函数中添加自己的逻辑,该怎么办呢?我们想要的结果是下面这样的
let newSay = say.before(function() {  //在原有逻辑执行之前执行
  console.log('您好')
});

// 我们可以利用function 的原型链
Function.prototype.before = function(fn) {
  let that = this;
  return function () {
    fn();
    that.apply(that,arguments);
  }
}
newSay('叔叔', '阿姨');
/** 结果:
 您好
 say~~ 叔叔 阿姨 
*/
上一篇 下一篇

猜你喜欢

热点阅读