什么面向切面开发


index.html


aop.js

function test(){
    alert(2);
    return "me test";
};
Function.prototype.before = function (fn){
    var __self= this;
    return function (){
    if (fn.apply(this.arguments)==false){
        return false;
    }
       return  __self.apply(__self,arguments);
    }
};
Function.prototype.after= function (fn){
    // after 先执行本身this, 再执行回调
    var __self = this;

    return function (){
        var result = __self.apply(__self,arguments);
        if(result ==false){
            return false;
        };
        fn.apply(this,arguments);
        return result;
    }

};
test.after(function () {
    alert(3);
}).before(function(){
    alert(1);
})();
}