设计模式——装饰器

用于给对象在运行期间动态的增加某个功能,职责等。相较通过继承的方式来扩充对象的功能,装饰器显得更加灵活,首先,我们可以动态给对象选定某个装饰器,而不用hardcore继承对象来实现某个功能点。其次:继承的方式可能会导致子类繁多,仅仅为了增加某一个单一的功能点,显得有些多余了。

 

 function addLoadEvent(fn) {
            var oldEvent = window.onload;
            if(typeof window.onload != 'function') {
                window.onload = fn;
            }else {
                window.onload = function() {
                    oldEvent();
                    fn();
                };
            }
        }
        function fn1() {
            console.log('onloadFunc 1');
        }
        function fn2() {
            console.log('onloadFunc 2');
        }
        function fn3() {
            console.log('onloadFunc 3');
        }
        addLoadEvent(fn1);
        addLoadEvent(fn2);
        addLoadEvent(fn3);

修饰器(Decorator)是一个函数,用来修改类的行为。这是ES7的一个提案,目前Babel转码器已经支持。

参考:http://blog.csdn.net/qiqingjin/article/details/51344684

http://es6.ruanyifeng.com/#docs/decorator

posted @ 2017-01-04 18:43  张琼  阅读(198)  评论(0编辑  收藏  举报