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