js 面向切面编程

来源:互联网 发布:淘宝漏洞退钱 编辑:程序博客网 时间:2024/06/05 15:27

概念

(AOP)面向切面编程,主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程的某个步骤或者阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果.

也就是说,在业务逻辑开始之前与结束之后进行操作,不干扰业务逻辑的具体过程.

Function.prototype.before = function(fn){    var _self = this    return function () {        //返回值判断,如果为false那么不执行,表示业务逻辑执行失败        if(fn.apply(this,arguments) === false){            return false        }        return _self.apply(_self,arguments)    }}Function.prototype.after = function(fn){    var _self = this;     return function () {        var result = _self.apply(_self,arguments)        //after有返回值判断,如果为false那么不执行,表示业务逻辑执行失败        if(result === false){            return false;        }        fn.apply(this,arguments)        return result    }}function test(val){    console.log(val)}// 编写初始处理function fInter(val){    if(isNaN(val)){        return false    }    console.log(val-1)}//编写后续处理function fOuter(val){    if(val <= 10){        return false    }    console.log(val+1)}//执行的时候需要这么操作test.before(fInter).after(fOuter)(8)test.before(fInter).after(fOuter)(12)test.before(fInter).after(fOuter)('hello')