js裝飾者模式是什麼

post200發表於2021-09-11

js裝飾者模式是什麼

在程式開發中,不希望某種型別天生龐大,一次承擔很多責任,可以使用裝飾者模型。裝飾者的模式可以動態地給某個物件追加責任,不會影響從這個類中誕生其他物件。

概念

1、裝飾者模式在不改變物件本身的基礎上,在程式執行期間動態新增物件的方法。

2、js語言動態更改物件相當容易,可以直接更改物件和物件的某種方法,不需要使用類來實現裝飾者的模式。

例項

Function.prototype.before = function(beforefn) {
    var self = this;    //儲存原函式引用
    return function(){  //返回包含了原函式和新函式的 '代理函式'
        beforefn.apply(this, arguments);    //執行新函式,修正this
        return self.apply(this,arguments);  //執行原函式
    }
}
Function.prototype.after = function(afterfn) {
    var self = this;
    return function(){
        var ret = self.apply(this,arguments);
        afterfn.apply(this, arguments);
        return ret;
    }
}
var func = function() {
    console.log('2');
}
//func1和func3為掛載函式
var func1 = function() {
    console.log('1');
}
var func3 = function() {
    console.log('3');
}
func = func.before(func1).after(func3);
func();

以上就是js裝飾者模式的介紹,希望對大家有所幫助。更多js學習指路:

推薦操作環境:windows7系統、jquery3.2.1版本,DELL G3電腦。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2249/viewspace-2829673/,如需轉載,請註明出處,否則將追究法律責任。

相關文章