AOP(面向切片编程)

作者: CRUD_科科 | 来源:发表于2019-06-10 09:52 被阅读3次

高阶函数

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

  • 函数的参数是函数 (callback回调函数,将一个函数传入到另一个函数中)
  • 函数的返回值是函数 (return function(){})

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~~ 叔叔 阿姨 
*/

相关文章

网友评论

    本文标题:AOP(面向切片编程)

    本文链接:https://www.haomeiwen.com/subject/zrlaxctx.html