首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【说站】js装饰者模式是什么

【说站】js装饰者模式是什么

作者头像
很酷的站长
发布于 2022-11-24 13:14:40
发布于 2022-11-24 13:14:40
7010
举报

js装饰者模式是什么

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

概念

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

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

实例

代码语言:javascript
复制
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装饰者模式的介绍,希望对大家有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • js装饰者模式是什么
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档