facade模式

/**
 * 外观模式
 * 为繁杂的操作提供干净的接口
 */
//阻止事件的默认行为和冒泡
/**
 * 终止事件冒泡
 * stopPropagation()
 * preventDefault()
 * 对以上两个操作进行外观封装,获取一个干净的接口。
 */
var myEvent = {
    stop: function(e) {
        e.stopPropagation();
        e.preventDefault();
    }
};

//跨浏览器封装
var myEvent = {
    stop: function(e) {
        //其它浏览器
        (typeof e.stopPropagation === 'function') && e.stopPropagation();
        (typeof e.preventDefault === 'function') && e.preventDefault();
        
        //ie浏览器
        (typeof e.returnValue === 'boolean') && (e.returnValue = false);
        (typeof e.cancelBubble === 'boolean') && (e.cancelBubble = false);
    }
}
原文地址:https://www.cnblogs.com/mtima/p/3187684.html