你知道什么是aop吗

面向切面编程(aop)

面对处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果

无侵入的代码

    function test(argument){
        alert(2)
    }
    Function.prototype.before = function(fn){
        var _self = this;
        return function(){
            fn.apply(_self, arguments);
                _self.apply(_self, arguments);
            }
    
        fn();
        return _self.apply(this, arguments)
        }
    
    Function.prototype.after = function (fn) {
        //body  先执行本身  在执行回调
        var _self = this;
        return function(){
            _self.apply(this, arguments);
            fn.apply(this, arguments);
        }
    }
    test.before(function(){
        alert(1)
        return 'me test'
    })
    
    
    //1. test被执行了两次 
    //2. 将before和after作为中转站
    //3. 挂载self的到fn上面

最后更新于

这有帮助吗?