// 在开发过程中 改动需求是必要的,在原有的函数中添加修改内容
// 封装一个类
function decorator (input,fn){
// 获取执行的 dom元素
let newInput = document.getElementById(input);
if(typeof newInput.onclick === "function"){
// 缓存原有的事件逻辑
let oldClickFn = newInput.onclick;
newInput.onclick = function () {
// 执行原有的事件逻辑
oldClickFn();
// 执行新添加的回调函数
fn();
}
}else{
newInput.onclick = fn;
}
}
// 假如原有的box元素有一个业务逻辑:
var box = document.getElementById('box');
// 原有的业务逻辑
box.onclick = function(){
alert(1)
}
// 新添加的业务逻辑
decorator('box',function(){
alert(2);
})
装饰者模式
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1. 装饰者模式 举个栗子,假如在一家饮料店中有两种饮料,分别是奶茶和咖啡,相对的有三种调料,蜂蜜、块糖和摩卡,这...
- 定义:装饰者模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。他是通过创建一个包装对象,也...
- 欢迎访问我的博客:http://wangnan.tech 装饰者模式 定义 动态地将责任附加到对象上,想要扩展功能...
- 一、代理模式和装饰者模式还记得装饰者模式那个开咖啡店的例子吗?装饰者类图: 同样开咖啡店,使用代理模式,那么类图是...
- AOP在职责模式中也有使用,初学设计模式过程中,AOP是性价比最高的,在实际开发中的作用也很重要,学习AOP你可以...