外观模式:为一组复杂的子系统接口提供一个更高级的统一接口,通过这个接口使得对子系统接口的访问更容易。
一个简单的例子:封装document.getElementById(),这样每次获取元素时都不需要写那么多code了。
function g(id){
return document.getElementById(id);
}
解决兼容性问题
在Javascript中有时也用于对底层结构兼容性做统一封装来简化用户使用。
由于老旧IE浏览器处理事件时跟标准浏览器不太一样,我们可以用外观模式来解决兼容性问题。
function addEvent(dom,type,fn){
//对于支持DOM2级事件处理 addEventListener
if(dom.addEventListener){
dom.addEventListener(type,fn,false);
}
//对于不支持addEventListener但支持attachEvent方法的浏览器
else if(dom.attachEvent){
dim.attachEvent('on'+type,fn)
}
//支持on+'事件名'的浏览器
else{
dom['on'+type] = fn
}
}
//获取事件对象
var getEvent = function(event){
//标准浏览器返回event,IE下window.event
retur