1. 程式人生 > >js 面向切面程式設計

js 面向切面程式設計

概念

(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')