js装饰者模式

来源:互联网 发布:d2c旗舰店淘宝 编辑:程序博客网 时间:2024/06/07 20:59
 <h1 id="h1">第十二章 房子装修——装饰者模式</h1>    <p>装饰者模式(Decorator):在不改变原对象的基础上,通过对其进行包装拓展(添加属性或者方法)使原有对象可以满足用户的更复杂需求。</p>    <script>        //装饰已有的功能对象        //装饰者        var decorator = function( input, fn ){              //获取事件源            var input = document.getElementById( input );            //若事件源已经绑定原有回调函数            if( typeof input.onclick === "function" ){                //缓存事件原有回调函数                var oldClickFn = input.onclick;                //为事件源绑定新的事件                input.onclick = function(){                    //事件源原有回调函数                    oldClickFn();                    //执行事件源新增回调函数                    fn();                 }            }else{                //事件原未绑定事件,直接为事件源添加新增回调函数                input.onclick = fn;            }        };        decorator( "h1", function(){            console.log(222)        })    </script>  <p>忆之获:通过对输入框交互功能的拓展,我们学习了一种可以在不了解原有功能的基础上对功能拓展模式,这是对原有功能的一种增强与拓展。当然同样对原有对象进行拓展的模式还有  适配器模式,所不同的是适配器进行拓展很多时候是对对象内部结构的重组,因此了解其自身结构是必须的。而装饰着对对象的拓展是一种良性拓展,不用了解其具体实现,只是在外部进行了  一次拓展,这又是对原有功能完整性的一种保护。</p>

0 0
原创粉丝点击