装饰者模式

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>
上一篇 下一篇

猜你喜欢

热点阅读