装饰者模式
2018-11-24 本文已影响0人
0说
装饰者模式
让我们的代码便于扩展
扩展原有代码的一种方式
例:
<body>
<div id="box">点击变红</div>
<script>
let box = document.getElementById('box')
box.onclick = function(){
this.style.color = 'red';
}
// 现在要在上面添加需求变背景颜色
let comom = function(dom, fn){
let ev = null
// 判断一个有没有点击事件用ev来传存一下 再添加onclick事件 事件里ev执行,改变this指向
dom.onclick = dom.onclick && (ev = dom.onclick, function(){
ev.apply(this);
fn.apply(this)
}) || fn
}
comom(box, function(){
this.style.background = 'yellow'
})
comom(box, function(){
this.style.fontSize = '32px'
})
可以添加无数
</script>
</body>