JS實現AOP 面向切面程式設計 (裝飾者模式)

晴天~ ☀發表於2019-01-11

1、什麼是AOP

AOP(Aspect-oriented programming)是面向切面的程式設計。可以在不修改原有程式碼的情況下增加新功能。

2、例如:

Function.prototype.before = function (fn) {  
    let that = this;  
    return function () { // => 當前返回的函式就是newFn    
        fn.apply(that,arguments); // {0:123,1:456}    
        that.apply(that, arguments);  
    }
}
let fn = function (val) {  
    console.log('old~~~~',val);
}
let newFn = fn.before(function(){  
    console.log('new~~~');
});
newFn('123');複製程式碼


相關文章