美文网首页让前端飞
面向切面编程

面向切面编程

作者: 我竟无言以对_1202 | 来源:发表于2018-07-13 17:28 被阅读1次

    概念

    (AOP)面向切面编程,主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程的某个步骤或者阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果.也就是说,在业务逻辑开始之前与结束之后进行操作,不干扰业务逻辑的具体过程.

    举个例子:计算一个函数的执行时间。

    普通方法:

    function test() {
        var start = new Date();
        alert(2);
        var end = new Date();
        console.log(end - start);
    };
    

    但是这样的话是不是每个函数都要加上start,end,这样会很麻烦而且说不定别人也会有start变量,所以我们就需要用面向切面编程

    function test(){
        alert(2);
    }
    
    Function.prototype.before = function(fn){
        var __self = this;
        return function(){
            fn.apply(__self,arguments);
            return __self.apply(__self,arguments);
        }
    }
    
    Function.prototype.after = function(fn){
        var __self = this;
        return function(){
            __self.apply(__self,arguments);
            fn.apply(this,arguments);
        }
    }
     test.before(function(){
        return start = new Date();
    }).after(function(){
        return end = new Date();
    })();
    
    console.log(end - start);
    
    

    相关文章

      网友评论

        本文标题:面向切面编程

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