前端常见设计模式

2017-09-25  本文已影响15人  蛋黄肉

1.写出 构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例。

2.使用发布订阅模式写一个事件管理器,可以实现如下方式调用

Event.on('change', function(val){
    console.log('change...  now val is ' + val);  
});
Event.fire('change', '饥人谷');
Event.off('changer');
var Event = (function(){
    var events = {}
    function on (evt ,handler){
        events[evt] = events[evt] || []
        events[evt].push({
            handler: handler
        })
    }
    function fire(evt,args){
        if(!events[evt]){
            return
        }
        for(var i=0;i<events[evt].length;i++){
            events[evt][i].handler(args)
        }
    }
    function off (evt){
        if(!events[evt]){
            console.log('此名称下没有方法...')
            return
        }else {
            events[evt] = undefined
        }
    }
    return {
        on: on,
        fire: fire,
        off: off
    }
})()

Event.on('change', function(val){
    console.log('change...  now val is ' + val);  
});
Event.fire('change', '饥人谷');
Event.off('changer');
Event.off('change');
/**  
 * 输出:
 * change...  now val is 饥人谷
 * 此名称下没有方法...
 */
上一篇 下一篇

猜你喜欢

热点阅读