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学习指路:js教程

推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

以上是 js装饰者模式是什么 的全部内容, 来源链接: utcz.com/z/544604.html

回到顶部