• 技术文章 >Web开发 >JavaScript

    js装饰者模式是什么

    小妮浅浅小妮浅浅2021-08-04 10:34:16原创3843

    在程序开发中,不希望某种类型天生庞大,一次承担很多责任,可以使用装饰者模型。装饰者的模式可以动态地给某个对象追加责任,不会影响从这个类中诞生其他对象。

    概念

    1、装饰者模式在不改变对象本身的基础上,在程序运行期间动态添加对象的方法。

    2、js语言动态更改对象相当容易,可以直接更改对象和对象的某种方法,不需要使用类来实现装饰者的模式。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    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装饰者模式
    上一篇:js中介者模式的使用场景 下一篇:js中闭包是什么?怎么用?

    相关文章推荐

    • js中every方法怎么用?• js some方法是什么• js中reduce在数组的使用• js单例模式如何理解• js策略模式是什么?• js中介者模式是什么意思?• js中介者模式的使用场景

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网